def test_adding_class_requires_reference(self):
        given_args = FakeArgs()

        self.assertRaises(cmake_create_class.CMakeClassCreatorException,
                          cmake_create_class.validate_args, given_args)

        given_args.reference_class = "fakeref"
        cmake_create_class.validate_args(given_args)
    def test_class_mode_source_cant_be_path(self):
        given_args = FakeArgs()

        given_args.name = "source/file.cpp"
        given_args.reference_class = "source/dir.cpp"

        self.assertRaises(cmake_create_class.CMakeClassCreatorException,
                          cmake_create_class.validate_args, given_args)

        given_args.name = "file.cpp"
        cmake_create_class.validate_args(given_args)
    def test_adding_single_file_may_be_path_unless_using_reference(self):
        given_args = FakeArgs()

        given_args.single_file = True
        given_args.name = "source/file.cpp"
        given_args.variable = "sources"

        cmake_create_class.validate_args(given_args)

        given_args.reference_class = "source/dir.cpp"
        self.assertRaises(cmake_create_class.CMakeClassCreatorException,
                          cmake_create_class.validate_args, given_args)
    def test_single_file_mode_with_variable_or_target_cant_have_reference(
            self):
        given_args = FakeArgs()

        given_args.single_file = True
        given_args.variable = "fakevariable"
        cmake_create_class.validate_args(given_args)

        given_args.reference_class = "fakeref"
        self.assertRaises(cmake_create_class.CMakeClassCreatorException,
                          cmake_create_class.validate_args, given_args)

        given_args.variable = None
        given_args.target = "faketarget"
        self.assertRaises(cmake_create_class.CMakeClassCreatorException,
                          cmake_create_class.validate_args, given_args)