| # Licensed to the Apache Software Foundation (ASF) under one * |
| # or more contributor license agreements. See the NOTICE file * |
| # distributed with this work for additional information * |
| # regarding copyright ownership. The ASF licenses this file * |
| # to you under the Apache License, Version 2.0 (the * |
| # "License"); you may not use this file except in compliance * |
| # with the License. You may obtain a copy of the License at * |
| # * |
| # http://www.apache.org/licenses/LICENSE-2.0 * |
| # * |
| # Unless required by applicable law or agreed to in writing, * |
| # software distributed under the License is distributed on an * |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * |
| # KIND, either express or implied. See the License for the * |
| # specific language governing permissions and limitations * |
| # under the License. |
| |
| import unittest |
| from etch.python.Types import * |
| from etch.binding.support.IdNameMap import * |
| from etch.binding.msg.IdName import * |
| |
| class IdNameMapTest(IdNameMap): |
| |
| @staticmethod |
| def makeNew(name): |
| return IdName(name) |
| |
| |
| class Test_EtchSupportIdNameMap(unittest.TestCase): |
| |
| def setUp(self): |
| self.a = IdName(1, "a") |
| self.b = IdName(2, "b") |
| self.map = IdNameMapTest() |
| self.map.add(self.a) |
| self.map.add(self.b) |
| |
| def test_check_a(self): |
| self.assertEqual(2, self.map.size()) |
| self.check("a", 1, self.a) |
| self.assertEqual(2, self.map.size()) |
| |
| def test_check_b(self): |
| self.assertEqual(2, self.map.size()) |
| self.check("b", 2, self.b) |
| self.assertEqual(2, self.map.size()) |
| |
| def test_get_3(self): |
| self.assertEqual(2, self.map.size()) |
| x = self.map.get(3) |
| self.assertEqual(None, x) |
| self.assertEqual(2, self.map.size()) |
| |
| def test_get_3_locked(self): |
| self.assertEqual(2, self.map.size()) |
| self.map.lock() |
| x = self.map.get(3) |
| self.assertEqual(None, x) |
| self.assertEqual(2, self.map.size()) |
| |
| def test_get_c(self): |
| self.assertEqual(2, self.map.size()) |
| c = self.map.get("c") |
| self.check("c", 352988318, c) |
| self.assertEqual(3, self.map.size()) |
| |
| def test_get_d_locked(self): |
| self.assertEqual(2, self.map.size()) |
| self.map.lock() |
| d = self.map.get("d") |
| self.assertEqual(None, d) |
| self.assertEqual(2, self.map.size()) |
| |
| def test_add_3_c_locked(self): |
| self.assertEqual(2, self.map.size()) |
| self.map.lock() |
| self.assertRaises(IllegalStateException, self.map.add, IdName(3, "c")) |
| self.assertEquals(2, self.map.size()) |
| |
| def test_add_id_coll(self): |
| self.assertEqual(2, self.map.size()) |
| self.assertRaises(IllegalArgumentException, self.map.add, IdName(1,"c")) |
| self.assertEquals(2, self.map.size()) |
| |
| def test_add_name_coll(self): |
| self.assertEqual(2, self.map.size()) |
| self.assertRaises(IllegalArgumentException, self.map.add, IdName(1,"a")) |
| self.assertEqual(2, self.map.size()) |
| |
| def test_add_id_name_coll(self): |
| self.assertEqual(2, self.map.size()) |
| self.assertRaises(IllegalArgumentException, self.map.add, IdName(1, "a")) |
| self.assertEqual(2, self.map.size()) |
| |
| def test_values1(self): |
| actual = self.map.values() |
| self.assertEqual(2, len(actual)) |
| expected = [] |
| expected.append(IdName(1, "a")) |
| expected.append(IdName(2, "b")) |
| self.assertEqual(expected, actual) |
| |
| self.map.get("c") |
| |
| actual = self.map.values() |
| self.assertEqual(3, actual.size()) |
| expected = [] |
| expected.append(IdName(1, "a")) |
| expected.append(IdName(2, "b")) |
| expected.append(IdName("c")) |
| self.assertEqual(expected, actual) |
| |
| def test_values2(self): |
| # code in value factory depends upon the fact that the set |
| # returned from .values is a copy |
| self.assertNotEquals(id(self.map.values()), id(self.map.values())) |
| |
| |
| def check(self, name, id, idName): |
| x = self.map.get(id) |
| self.assertNotEqual(None, x) |
| self.assertEqual(idName, x) |
| self.assertEqual(id, x.getId()) |
| self.assertEqual(name, x.getName()) |
| |
| x = self.map.get(name) |
| self.assertNotEqual(None, x) |
| self.assertEqual(idName, x) |
| self.assertEqual(id, x.getId()) |
| self.assertEqual(name, x.getName()) |
| |
| if __name__ == '__main__': |
| unittest.main() |