configurationengine/source/plugins/symbian/ConeHCRPlugin/hcrplugin/tests/unittest_hcrrepository.py
changeset 0 2e8eeb919028
child 3 e7e0ae78773e
equal deleted inserted replaced
-1:000000000000 0:2e8eeb919028
       
     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))