def test_allof_config_validation(self):
        class TestConf(schema.Schema):
            item = schema.ArrayItem(
                title="Hungry",
                description="Are you hungry?",
                items=schema.AllOfItem(
                    items=(
                        schema.StringItem(min_length=2),
                        schema.StringItem(max_length=3),
                    )
                ),
            )

        try:
            jsonschema.validate({"item": ["no"]}, TestConf.serialize())
        except jsonschema.exceptions.ValidationError as exc:
            self.fail("ValidationError raised: {}".format(exc))

        try:
            jsonschema.validate({"item": ["yes"]}, TestConf.serialize())
        except jsonschema.exceptions.ValidationError as exc:
            self.fail("ValidationError raised: {}".format(exc))

        with self.assertRaises(jsonschema.exceptions.ValidationError) as excinfo:
            jsonschema.validate({"item": ["maybe"]}, TestConf.serialize())
        self.assertIn("is too long", excinfo.exception.message)

        with self.assertRaises(jsonschema.exceptions.ValidationError) as excinfo:
            jsonschema.validate({"item": ["hmmmm"]}, TestConf.serialize())
        self.assertIn("is too long", excinfo.exception.message)

        with self.assertRaises(jsonschema.exceptions.ValidationError) as excinfo:
            jsonschema.validate({"item": 2}, TestConf.serialize())
        self.assertIn("is not of type", excinfo.exception.message)