|
1 # |
|
2 # Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). |
|
3 # All rights reserved. |
|
4 # This component and the accompanying materials are made available |
|
5 # under the terms of "Eclipse Public License v1.0" |
|
6 # which accompanies this distribution, and is available |
|
7 # at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 # |
|
9 # Initial Contributors: |
|
10 # Nokia Corporation - initial contribution. |
|
11 # |
|
12 # Contributors: |
|
13 # |
|
14 # Description: |
|
15 # |
|
16 |
|
17 import unittest |
|
18 import os, shutil |
|
19 import sys |
|
20 |
|
21 import __init__ |
|
22 |
|
23 from hcrplugin.hcrrepository import HcrRepository, HcrRecord |
|
24 from cone.public import api |
|
25 |
|
26 |
|
27 ROOT_PATH = os.path.dirname(os.path.abspath(__file__)) |
|
28 |
|
29 class TestHcrRepository(unittest.TestCase): |
|
30 def test_repository_equality(self): |
|
31 self.assertTrue(HcrRepository([], 1, 1) == HcrRepository([], 1, 1)) |
|
32 self.assertFalse(HcrRepository([], 1, 1) == HcrRepository([], 2, 1)) |
|
33 self.assertFalse(HcrRepository([], 1, 1) == HcrRepository([], 1, 2)) |
|
34 |
|
35 self.assertTrue(HcrRepository([], 1, 1) != HcrRepository([], 1, 2)) |
|
36 |
|
37 # Records the same, but in different order |
|
38 r1 = HcrRepository([ |
|
39 HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 30, 93), |
|
40 HcrRecord(HcrRecord.VALTYPE_INT8, 25, 20, 62, 41), |
|
41 HcrRecord(HcrRecord.VALTYPE_BIN_DATA, 10, 20, 31, 40), |
|
42 HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 83, 41), |
|
43 HcrRecord(HcrRecord.VALTYPE_UINT64, 10, 21, 30, 40)], |
|
44 version=1, flags=1) |
|
45 r2 = HcrRepository([ |
|
46 HcrRecord(HcrRecord.VALTYPE_UINT64, 10, 21, 30, 40), |
|
47 HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 30, 93), |
|
48 HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 83, 41), |
|
49 HcrRecord(HcrRecord.VALTYPE_BIN_DATA, 10, 20, 31, 40), |
|
50 HcrRecord(HcrRecord.VALTYPE_INT8, 25, 20, 62, 41), |
|
51 ], |
|
52 version=1, flags=1) |
|
53 self.assertTrue(r1 == r2) |
|
54 self.assertEquals(repr(r1), repr(r2)) |
|
55 |
|
56 r1.version = 2 |
|
57 self.assertFalse(r1 == r2) |
|
58 r1.version = 1 |
|
59 self.assertTrue(r1 == r2) |
|
60 r1.flags = 3 |
|
61 self.assertFalse(r1 == r2) |
|
62 r1.flags = 1 |
|
63 self.assertTrue(r1 == r2) |
|
64 |
|
65 r1.records.append(HcrRecord(HcrRecord.VALTYPE_LIN_ADDR, 1, 2, 3, 4)) |
|
66 self.assertFalse(r1 == r2) |
|
67 |
|
68 def test_get_duplicate_records(self): |
|
69 r = HcrRepository([ |
|
70 HcrRecord(HcrRecord.VALTYPE_INT8, 162, 1, 1, 93), |
|
71 HcrRecord(HcrRecord.VALTYPE_INT8, 172, 1, 2, 41), |
|
72 HcrRecord(HcrRecord.VALTYPE_TEXT8, 182, 1, 3, 40), |
|
73 HcrRecord(HcrRecord.VALTYPE_INT8, 192, 2, 1, 41), |
|
74 HcrRecord(HcrRecord.VALTYPE_UINT32, 202, 2, 2, 40)], |
|
75 version=1, flags=1) |
|
76 |
|
77 self.assertEquals(r.get_duplicate_record_ids(), []) |
|
78 |
|
79 r.records.append(HcrRecord(HcrRecord.VALTYPE_UINT16, 212, 1, 1, 142)) |
|
80 self.assertEquals(r.get_duplicate_record_ids(), [(1, 1)]) |
|
81 |
|
82 r.records.append(HcrRecord(HcrRecord.VALTYPE_UINT64, 105, 1, 1, 142)) |
|
83 self.assertEquals(r.get_duplicate_record_ids(), [(1, 1)]) |
|
84 |
|
85 r.records.append(HcrRecord(HcrRecord.VALTYPE_UINT64, 222, 2, 2, 32)) |
|
86 self.assertEquals(r.get_duplicate_record_ids(), [(1, 1), (2, 2)]) |
|
87 |
|
88 r.records.append(HcrRecord(HcrRecord.VALTYPE_TEXT8, 232, 3, 1, 32)) |
|
89 self.assertEquals(r.get_duplicate_record_ids(), [(1, 1), (2, 2)]) |
|
90 |
|
91 class TestHCRRecord(unittest.TestCase): |
|
92 |
|
93 def test_create_record_with_valid_type(self): |
|
94 r = HcrRecord(HcrRecord.VALTYPE_INT16, 1234, 1, 2, 3) |
|
95 self.assertEquals(r.type, HcrRecord.VALTYPE_INT16) |
|
96 self.assertEquals(r.value, 1234) |
|
97 self.assertEquals(r.category_id, 1) |
|
98 self.assertEquals(r.element_id, 2) |
|
99 self.assertEquals(r.flags, 3) |
|
100 |
|
101 def test_create_record_with_invalid_type(self): |
|
102 try: |
|
103 r = HcrRecord('foobar_type', 0, 0, 0, 0) |
|
104 self.fail("Creating a foobar_type record succeeded!") |
|
105 except ValueError: |
|
106 pass |
|
107 |
|
108 def test_record_equality(self): |
|
109 self.assertTrue(HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 30, 93) == HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 30, 93)) |
|
110 |
|
111 self.assertFalse(HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 30, 93) == HcrRecord(HcrRecord.VALTYPE_INT16, 10, 20, 30, 93)) |
|
112 self.assertFalse(HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 30, 93) == HcrRecord(HcrRecord.VALTYPE_INT8, 2, 20, 30, 93)) |
|
113 self.assertFalse(HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 30, 93) == HcrRecord(HcrRecord.VALTYPE_INT8, 10, 2, 30, 93)) |
|
114 self.assertFalse(HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 30, 93) == HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 2, 93)) |
|
115 self.assertFalse(HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 30, 93) == HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 30, 2)) |
|
116 |
|
117 self.assertTrue(HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 30, 93) != HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 30, 2)) |
|
118 |
|
119 r1 = HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 30, 93) |
|
120 r2 = HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 30, 93) |
|
121 self.assertEquals(repr(r1), repr(r2)) |
|
122 r2.value = 12 |
|
123 self.assertNotEquals(repr(r1), repr(r2)) |
|
124 |
|
125 def test_record_sorting(self): |
|
126 records1 = [ |
|
127 HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 30, 93), |
|
128 HcrRecord(HcrRecord.VALTYPE_INT8, 25, 20, 62, 41), |
|
129 HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 30, 93), |
|
130 HcrRecord(HcrRecord.VALTYPE_BIN_DATA, 10, 20, 31, 40), |
|
131 HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 83, 41), |
|
132 HcrRecord(HcrRecord.VALTYPE_UINT64, 10, 21, 30, 40), |
|
133 ] |
|
134 |
|
135 records2 = [ |
|
136 HcrRecord(HcrRecord.VALTYPE_BIN_DATA, 10, 20, 31, 40), |
|
137 HcrRecord(HcrRecord.VALTYPE_INT8, 25, 20, 62, 41), |
|
138 HcrRecord(HcrRecord.VALTYPE_UINT64, 10, 21, 30, 40), |
|
139 HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 83, 41), |
|
140 HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 30, 93), |
|
141 HcrRecord(HcrRecord.VALTYPE_INT8, 10, 20, 30, 93), |
|
142 ] |
|
143 |
|
144 self.assertNotEquals(records1, records2) |
|
145 self.assertEquals(sorted(records1), sorted(records2)) |