configurationengine/source/plugins/symbian/ConeHCRPlugin/hcrplugin/tests/unittest_hcrrepository.py
changeset 0 2e8eeb919028
child 3 e7e0ae78773e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/configurationengine/source/plugins/symbian/ConeHCRPlugin/hcrplugin/tests/unittest_hcrrepository.py	Thu Mar 11 17:04:37 2010 +0200
@@ -0,0 +1,145 @@
+#
+# 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 unittest
+import os, shutil
+import sys
+
+import __init__
+
+from hcrplugin.hcrrepository import HcrRepository, HcrRecord
+from cone.public import api
+
+
+ROOT_PATH = os.path.dirname(os.path.abspath(__file__))
+
+class TestHcrRepository(unittest.TestCase):
+    def test_repository_equality(self):
+        self.assertTrue(HcrRepository([], 1, 1) == HcrRepository([], 1, 1))
+        self.assertFalse(HcrRepository([], 1, 1) == HcrRepository([], 2, 1))
+        self.assertFalse(HcrRepository([], 1, 1) == HcrRepository([], 1, 2))
+        
+        self.assertTrue(HcrRepository([], 1, 1) != HcrRepository([], 1, 2))
+        
+        # Records the same, but in different order
+        r1 = HcrRepository([
+                HcrRecord(HcrRecord.VALTYPE_INT8,       10, 20, 30, 93),
+                HcrRecord(HcrRecord.VALTYPE_INT8,       25, 20, 62, 41),
+                HcrRecord(HcrRecord.VALTYPE_BIN_DATA,   10, 20, 31, 40),
+                HcrRecord(HcrRecord.VALTYPE_INT8,       10, 20, 83, 41),
+                HcrRecord(HcrRecord.VALTYPE_UINT64,     10, 21, 30, 40)],
+                version=1, flags=1)
+        r2 = HcrRepository([
+                HcrRecord(HcrRecord.VALTYPE_UINT64,     10, 21, 30, 40),
+                HcrRecord(HcrRecord.VALTYPE_INT8,       10, 20, 30, 93),
+                HcrRecord(HcrRecord.VALTYPE_INT8,       10, 20, 83, 41),
+                HcrRecord(HcrRecord.VALTYPE_BIN_DATA,   10, 20, 31, 40),
+                HcrRecord(HcrRecord.VALTYPE_INT8,       25, 20, 62, 41),
+                ],
+                version=1, flags=1)
+        self.assertTrue(r1 == r2)
+        self.assertEquals(repr(r1), repr(r2))
+        
+        r1.version = 2
+        self.assertFalse(r1 == r2)
+        r1.version = 1
+        self.assertTrue(r1 == r2)
+        r1.flags = 3
+        self.assertFalse(r1 == r2)
+        r1.flags = 1
+        self.assertTrue(r1 == r2)
+        
+        r1.records.append(HcrRecord(HcrRecord.VALTYPE_LIN_ADDR, 1, 2, 3, 4))
+        self.assertFalse(r1 == r2)
+        
+    def test_get_duplicate_records(self):
+        r = HcrRepository([
+                HcrRecord(HcrRecord.VALTYPE_INT8, 162, 1, 1, 93),
+                HcrRecord(HcrRecord.VALTYPE_INT8, 172, 1, 2, 41),
+                HcrRecord(HcrRecord.VALTYPE_TEXT8, 182, 1, 3, 40),
+                HcrRecord(HcrRecord.VALTYPE_INT8, 192, 2, 1, 41),
+                HcrRecord(HcrRecord.VALTYPE_UINT32, 202, 2, 2, 40)],
+                version=1, flags=1)
+        
+        self.assertEquals(r.get_duplicate_record_ids(), [])
+        
+        r.records.append(HcrRecord(HcrRecord.VALTYPE_UINT16, 212, 1, 1, 142))
+        self.assertEquals(r.get_duplicate_record_ids(), [(1, 1)])
+        
+        r.records.append(HcrRecord(HcrRecord.VALTYPE_UINT64, 105, 1, 1, 142))
+        self.assertEquals(r.get_duplicate_record_ids(), [(1, 1)])
+        
+        r.records.append(HcrRecord(HcrRecord.VALTYPE_UINT64, 222, 2, 2, 32))
+        self.assertEquals(r.get_duplicate_record_ids(), [(1, 1), (2, 2)])
+        
+        r.records.append(HcrRecord(HcrRecord.VALTYPE_TEXT8, 232, 3, 1, 32))
+        self.assertEquals(r.get_duplicate_record_ids(), [(1, 1), (2, 2)])
+
+class TestHCRRecord(unittest.TestCase):
+
+    def test_create_record_with_valid_type(self):
+        r = HcrRecord(HcrRecord.VALTYPE_INT16, 1234, 1, 2, 3)
+        self.assertEquals(r.type, HcrRecord.VALTYPE_INT16)
+        self.assertEquals(r.value, 1234)
+        self.assertEquals(r.category_id, 1)
+        self.assertEquals(r.element_id, 2)
+        self.assertEquals(r.flags, 3)
+
+    def test_create_record_with_invalid_type(self):
+        try:
+            r = HcrRecord('foobar_type', 0, 0, 0, 0)
+            self.fail("Creating a foobar_type record succeeded!")
+        except ValueError:
+            pass
+    
+    def test_record_equality(self):
+        self.assertTrue(HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 30, 93)  == HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 30, 93))
+        
+        self.assertFalse(HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 30, 93) == HcrRecord(HcrRecord.VALTYPE_INT16, 10, 20, 30, 93))
+        self.assertFalse(HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 30, 93) == HcrRecord(HcrRecord.VALTYPE_INT8,   2, 20, 30, 93))
+        self.assertFalse(HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 30, 93) == HcrRecord(HcrRecord.VALTYPE_INT8,  10,  2, 30, 93))
+        self.assertFalse(HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 30, 93) == HcrRecord(HcrRecord.VALTYPE_INT8,  10, 20,  2, 93))
+        self.assertFalse(HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 30, 93) == HcrRecord(HcrRecord.VALTYPE_INT8,  10, 20, 30, 2))
+        
+        self.assertTrue(HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 30, 93) != HcrRecord(HcrRecord.VALTYPE_INT8,  10, 20, 30, 2))
+        
+        r1 = HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 30, 93)
+        r2 = HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 30, 93)
+        self.assertEquals(repr(r1), repr(r2))
+        r2.value = 12
+        self.assertNotEquals(repr(r1), repr(r2))
+    
+    def test_record_sorting(self):
+        records1 = [
+            HcrRecord(HcrRecord.VALTYPE_INT8,       10, 20, 30, 93),
+            HcrRecord(HcrRecord.VALTYPE_INT8,       25, 20, 62, 41),
+            HcrRecord(HcrRecord.VALTYPE_INT8,       10, 20, 30, 93),
+            HcrRecord(HcrRecord.VALTYPE_BIN_DATA,   10, 20, 31, 40),
+            HcrRecord(HcrRecord.VALTYPE_INT8,       10, 20, 83, 41),
+            HcrRecord(HcrRecord.VALTYPE_UINT64,     10, 21, 30, 40),
+            ]
+
+        records2 = [
+            HcrRecord(HcrRecord.VALTYPE_BIN_DATA,   10, 20, 31, 40),
+            HcrRecord(HcrRecord.VALTYPE_INT8,       25, 20, 62, 41),
+            HcrRecord(HcrRecord.VALTYPE_UINT64,     10, 21, 30, 40),
+            HcrRecord(HcrRecord.VALTYPE_INT8,       10, 20, 83, 41),
+            HcrRecord(HcrRecord.VALTYPE_INT8,       10, 20, 30, 93),
+            HcrRecord(HcrRecord.VALTYPE_INT8,       10, 20, 30, 93),
+            ]
+        
+        self.assertNotEquals(records1, records2)
+        self.assertEquals(sorted(records1), sorted(records2))