class TestValidate(unittest.TestCase):
    def setUp(self):
        self.meta = ChoiceArrayMeta("test description", ["a", "b"])

    def test_validate_none(self):
        self.assertIsNone(self.meta.validate(None))

    def test_validate(self):
        response = self.meta.validate(["b", "a"])
        self.assertEqual(["b", "a"], response)

    def test_not_iterable_raises(self):
        value = "abb"
        self.assertRaises(ValueError, self.meta.validate, value)

    def test_null_element_raises(self):
        array = ["b", None]
        self.assertRaises(ValueError, self.meta.validate, array)

    def test_invalid_choice_raises(self):
        with self.assertRaises(ValueError):
            self.meta.validate(["a", "x"])
class TestValidate(unittest.TestCase):
    def setUp(self):
        self.meta = ChoiceArrayMeta("test description", ["a", "b"])

    def test_validate_none(self):
        self.assertEquals(self.meta.validate(None), [])

    def test_validate(self):
        response = self.meta.validate(["b", "a"])
        self.assertEqual(["b", "a"], response)

    def test_not_iterable_raises(self):
        value = "abb"
        self.assertRaises(ValueError, self.meta.validate, value)

    def test_null_element_raises(self):
        array = ["b", None]
        self.assertRaises(ValueError, self.meta.validate, array)

    def test_invalid_choice_raises(self):
        with self.assertRaises(ValueError):
            self.meta.validate(["a", "x"])