1# -*- coding: utf-8 -*-
2# Copyright (C) 2021 Greenbone Networks GmbH
3#
4# SPDX-License-Identifier: GPL-3.0-or-later
5#
6# This program is free software: you can redistribute it and/or modify
7# it under the terms of the GNU General Public License as published by
8# the Free Software Foundation, either version 3 of the License, or
9# (at your option) any later version.
10#
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14# GNU General Public License for more details.
15#
16# You should have received a copy of the GNU General Public License
17# along with this program.  If not, see <http://www.gnu.org/licenses/>.
18
19import unittest
20
21from gvm.errors import InvalidArgument
22from gvm.protocols.gmpv214 import HostsOrdering
23
24
25class GetHostsOrderingFromStringTestCase(unittest.TestCase):
26    def test_invalid(self):
27        with self.assertRaises(InvalidArgument):
28            HostsOrdering.from_string('foo')
29
30    def test_none_or_empty(self):
31        ct = HostsOrdering.from_string(None)
32        self.assertIsNone(ct)
33        ct = HostsOrdering.from_string('')
34        self.assertIsNone(ct)
35
36    def test_sequential(self):
37        ct = HostsOrdering.from_string("sequential")
38        self.assertEqual(ct, HostsOrdering.SEQUENTIAL)
39
40    def test_random(self):
41        ct = HostsOrdering.from_string("random")
42        self.assertEqual(ct, HostsOrdering.RANDOM)
43
44    def test_reverse(self):
45        ct = HostsOrdering.from_string("reverse")
46        self.assertEqual(ct, HostsOrdering.REVERSE)
47