|
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 """ |
|
18 Test sets |
|
19 """ |
|
20 import unittest |
|
21 |
|
22 from cone.public import api,exceptions |
|
23 |
|
24 |
|
25 class TestProperty(unittest.TestCase): |
|
26 def test_create_property(self): |
|
27 property = api.Property(name='test',value='foo', unit='kB') |
|
28 self.assertEquals(property.name, 'test') |
|
29 self.assertEquals(property.value, 'foo') |
|
30 self.assertEquals(property.unit, 'kB') |
|
31 property.name = 'testnew' |
|
32 property.value = 'foo faa' |
|
33 property.unit = "MB" |
|
34 self.assertEquals(property.name, 'testnew') |
|
35 self.assertEquals(property.value, 'foo faa') |
|
36 self.assertEquals(property.unit, 'MB') |
|
37 |
|
38 def test_add_property_to_feature(self): |
|
39 fea = api.Feature("testfea") |
|
40 prop1 = api.Property(name='test',value='foo', unit='kB') |
|
41 fea.add_property(prop1) |
|
42 self.assertEquals(fea.list_properties(),['test']) |
|
43 self.assertEquals(fea.get_property('test'),prop1) |
|
44 |
|
45 def test_add_and_remove_property_to_feature(self): |
|
46 fea = api.Feature("testfea") |
|
47 prop1 = api.Property(name='test',value='foo', unit='kB') |
|
48 fea.add_property(prop1) |
|
49 self.assertEquals(fea.list_properties(),['test']) |
|
50 fea.remove_property('test') |
|
51 self.assertEquals(fea.list_properties(),[]) |
|
52 |
|
53 def test_add_property_invalid_param(self): |
|
54 fea = api.Feature('test') |
|
55 self.assertRaises(TypeError, fea.add_property, object()) |
|
56 |
|
57 def test_property_compare(self): |
|
58 elem1 = api.Property(name='test1',value='foo', unit='kB') |
|
59 elem2 = api.Property(name='test2',value='bar', unit='MB') |
|
60 elem3 = api.Property(name='test3',value='foobar', unit='B') |
|
61 self.assertFalse(elem1==elem2) |
|
62 self.assertFalse(elem1==elem3) |
|
63 |
|
64 def test_get_property_nonexistent(self): |
|
65 fea = api.Feature('test') |
|
66 self.assertRaises(exceptions.NotFound, fea.get_property, 'foo') |
|
67 |
|
68 def test_get_property_invalid_type(self): |
|
69 fea = api.Feature('test') |
|
70 fea.add(api.Feature('property_foo')) |
|
71 self.assertRaises(TypeError, fea.get_property, 'foo') |
|
72 |
|
73 def test_create_feature_with_properties(self): |
|
74 fea = api.Feature('test') |
|
75 prop1 = api.Property(name='test1',value='foo', unit='kB') |
|
76 prop2 = api.Property(name='test2',value='bar', unit='MB') |
|
77 fea.add_property(prop1) |
|
78 fea.add(prop2) |
|
79 self.assertEquals(fea.list_properties(), ['test1','test2']) |
|
80 self.assertEquals(fea.property_test1.get_name(),'test1') |
|
81 self.assertEquals(fea.property_test1.get_value(),'foo') |
|
82 self.assertEquals(fea.property_test1.get_unit(),'kB') |
|
83 self.assertEquals(fea.get_property('test1').get_name(),'test1') |
|
84 self.assertEquals(fea.get_property('test1').get_value(),'foo') |
|
85 self.assertEquals(fea.get_property('test1').get_unit(),'kB') |
|
86 self.assertEquals(fea.property_test2.get_name(),'test2') |
|
87 self.assertEquals(fea.property_test2.get_value(),'bar') |
|
88 self.assertEquals(fea.property_test2.get_unit(),'MB') |
|
89 fea.add_property(prop2) |
|
90 self.assertEquals(fea.list_properties(), ['test1','test2']) |
|
91 |
|
92 def test_resetting_properties(self): |
|
93 fea = api.Feature('test') |
|
94 prop1 = api.Property(name='test1',value='foo', unit='kB') |
|
95 prop2 = api.Property(name='test1',value='bar', unit='MB') |
|
96 fea.add_property(prop1) |
|
97 self.assertEquals(fea.list_properties(), ['test1']) |
|
98 self.assertEquals(fea.get_property('test1').get_name(),'test1') |
|
99 self.assertEquals(fea.get_property('test1').get_value(),'foo') |
|
100 self.assertEquals(fea.get_property('test1').get_unit(),'kB') |
|
101 fea.add_property(prop2) |
|
102 self.assertEquals(fea.get_property('test1').get_name(),'test1') |
|
103 self.assertEquals(fea.get_property('test1').get_value(),'bar') |
|
104 self.assertEquals(fea.get_property('test1').get_unit(),'MB') |
|
105 self.assertEquals(fea.list_properties(), ['test1']) |
|
106 |
|
107 def test_adding_and_removing_multiple_properties(self): |
|
108 fea = api.Feature('test') |
|
109 prop1 = api.Property(name='test1',value='foo', unit='kB') |
|
110 prop2 = api.Property(name='test2',value='bar1', unit='MB1') |
|
111 prop3 = api.Property(name='test3',value='bar2', unit='MB2') |
|
112 |
|
113 self.assertEquals(fea.list_properties(), []) |
|
114 |
|
115 fea.add_property(prop1) |
|
116 self.assertEquals(fea.list_properties(), ['test1']) |
|
117 |
|
118 fea.add_property(prop2) |
|
119 self.assertEquals(fea.list_properties(), ['test1', 'test2']) |
|
120 |
|
121 fea.add_property(prop3) |
|
122 self.assertEquals(fea.list_properties(), ['test1', 'test2', 'test3']) |
|
123 self.assertEquals(fea.get_property('test1').get_name(),'test1') |
|
124 self.assertEquals(fea.get_property('test1').get_value(),'foo') |
|
125 self.assertEquals(fea.get_property('test1').get_unit(),'kB') |
|
126 self.assertEquals(fea.get_property('test2').get_name(),'test2') |
|
127 self.assertEquals(fea.get_property('test2').get_value(),'bar1') |
|
128 self.assertEquals(fea.get_property('test2').get_unit(),'MB1') |
|
129 self.assertEquals(fea.get_property('test3').get_name(),'test3') |
|
130 self.assertEquals(fea.get_property('test3').get_value(),'bar2') |
|
131 self.assertEquals(fea.get_property('test3').get_unit(),'MB2') |
|
132 |
|
133 fea.remove_property('test2') |
|
134 self.assertEquals(fea.list_properties(), ['test1', 'test3']) |
|
135 |
|
136 fea.remove_property('test3') |
|
137 self.assertEquals(fea.list_properties(), ['test1']) |
|
138 |
|
139 fea.remove_property('test1') |
|
140 self.assertEquals(fea.list_properties(), []) |
|
141 |
|
142 def test_remove_property_nonexistent(self): |
|
143 fea = api.Feature('test') |
|
144 self.assertRaises(exceptions.NotFound, fea.remove_property, 'nonexisting') |
|
145 |
|
146 def test_remove_property_invalid_param(self): |
|
147 fea = api.Feature('test') |
|
148 fea.add(api.Feature('property_xyz')) |
|
149 self.assertRaises(TypeError, fea.remove_property, 'xyz') |
|
150 |
|
151 def test_create_property_without_name(self): |
|
152 try: |
|
153 api.Property(name=None, value='foo', unit='kB') |
|
154 except ValueError: |
|
155 return #ValueError expected |
|
156 self.fail("ValueError expected.") |