--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/configurationengine/source/cone/validation/tests/unittest_confmlfixing.py Tue Aug 10 14:29:28 2010 +0300
@@ -0,0 +1,79 @@
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+import os
+import unittest
+import logging
+
+ROOT_PATH = os.path.dirname(os.path.abspath(__file__))
+TESTDATA_DIR = os.path.join(ROOT_PATH, 'testdata')
+TEMP_DIR = os.path.join(ROOT_PATH, 'temp')
+
+from testautomation.base_testcase import BaseTestCase
+from cone.public import api
+import cone.validation.confmlvalidation
+
+class TestConfmlFixing(unittest.TestCase):
+ def test_confml_fixer_filter_problems(self):
+ fixer = cone.validation.confmlvalidation.FixerBase()
+ prbs = [api.Problem("msg1", type="test.foo.bar"),
+ api.Problem("msg2", type="test.foo.bar"),
+ api.Problem("msg3", type="test.foo.faa"),
+ api.Problem("msg4", type="test.foo.bar")]
+ self.assertEquals(len(fixer.filter_problems(prbs,'test.foo.bar')),3)
+
+ def test_get_fixer_classes(self):
+ fixers = cone.validation.confmlvalidation.get_fixer_classes()
+ self.assertEquals(len(fixers),1)
+
+class TestConfmlFixModel(BaseTestCase):
+ def test_fix_duplicates(self):
+ prj_dir = os.path.join(TESTDATA_DIR, 'model/confml/single_files')
+ prj = api.Project(api.Storage.open(prj_dir))
+ conf = prj.get_configuration("duplicate_root.confml")
+ vc = cone.validation.confmlvalidation.fix_configuration(conf)
+ self.assertEqual(len(vc.fixes), 1)
+ self.assertEquals(conf.list_configurations(),['duplicate_settings1.confml',
+ 'duplicate_settings2.confml'])
+ subconf1 = conf.get_configuration('duplicate_settings1.confml')
+ subconf2 = conf.get_configuration('duplicate_settings2.confml')
+ self.assertEquals(subconf2.list_all_features(),[])
+ self.assertEquals(subconf1.list_all_features(),['Feature',
+ 'Feature.One',
+ 'Feature.Two',
+ 'Feature.Three',
+ 'Feature.NoData',
+ 'Feature.TestSequence',
+ 'Feature.TestSequence.SeqTwo',
+ 'Feature.TestSequence.SeqThree'])
+
+class TestConfmlFixingFiles(BaseTestCase):
+
+ def test_export_fixed_configuration_test(self):
+ # Open the file as a configuration
+ prj_dir = os.path.join(TESTDATA_DIR, 'model/confml/single_files')
+ prj = api.Project(api.Storage.open(prj_dir))
+ conf = prj.get_configuration('duplicate_root.confml')
+ vc = cone.validation.confmlvalidation.fix_configuration(conf)
+ self.recreate_dir(os.path.join(TEMP_DIR,'fixed'))
+ rstorage = api.Storage.open(os.path.join(TEMP_DIR,'fixed'), "w")
+ prj.export_configuration(conf, rstorage)
+ rstorage.save()
+ rstorage.close()
+ self.assert_dir_contents_equal(os.path.join(TEMP_DIR,'fixed'),
+ os.path.join(TESTDATA_DIR, 'model/confml/fixed_expected'),
+ ignore=[".metadata", '.svn'])
+