/* * 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. */ package org.apache.wicket.security.util; import java.util.Set; import junit.framework.TestCase; /** * @author marrink * */ public class ManyToManyMapTest extends TestCase { /** * @param name */ public ManyToManyMapTest(String name) { super(name); } /** * Test method for * {@link org.apache.wicket.security.util.ManyToManyMap#add(java.lang.Object, java.lang.Object)} * . */ public void testAdd() { ManyToManyMap<String, String> map = new ManyToManyMap<String, String>(); map.add("A.1", "A"); map.add("A.2", "A"); map.add("A.1", "AB"); map.add("A.2", "AB"); map.add("B.1", "B"); map.add("B.2", "B"); map.add("B.1", "AB"); map.add("B.2", "AB"); map.add("C.1", "C"); assertEquals(9, map.size()); Set<String> manys = map.getRight("A.1"); assertEquals(2, manys.size()); assertTrue(manys.contains("A")); assertTrue(manys.contains("AB")); manys = map.getLeft("A"); assertEquals(2, manys.size()); assertTrue(manys.contains("A.1")); assertTrue(manys.contains("A.2")); manys = map.getLeft("AB"); assertEquals(4, manys.size()); assertTrue(manys.contains("A.1")); assertTrue(manys.contains("A.2")); assertTrue(manys.contains("B.1")); assertTrue(manys.contains("B.2")); manys = map.getLeft("C"); assertEquals(1, manys.size()); assertTrue(manys.contains("C.1")); } /** * Test method for * {@link org.apache.wicket.security.util.ManyToManyMap#remove(java.lang.Object, java.lang.Object)} * . */ public void testRemove() { ManyToManyMap<String, String> map = new ManyToManyMap<String, String>(); map.add("A.1", "A"); map.add("A.2", "A"); assertEquals(3, map.size()); assertTrue(map.remove("A.1", "A")); assertEquals(2, map.size()); map.add("A.1", "A"); assertEquals(3, map.size()); map = new ManyToManyMap<String, String>(); map.add("A.1", "A"); assertEquals(2, map.size()); map.remove("A.1", "A"); assertEquals(0, map.size()); assertTrue(map.isEmpty()); } /** * Test method for * {@link org.apache.wicket.security.util.ManyToManyMap#removeAllMappingsForLeft(Object)} * and right. */ public void testRemoveAllMappings() { ManyToManyMap<String, String> map = new ManyToManyMap<String, String>(); map.add("A.1", "A"); map.add("A.2", "A"); Set<String> manys = map.removeAllMappingsForRight("A"); assertEquals(0, map.size()); assertTrue(manys.contains("A.1")); assertTrue(manys.contains("A.2")); map.add("A.1", "A"); map.add("A.2", "A"); map.add("A.2", "B"); manys = map.removeAllMappingsForLeft("A.1"); assertEquals(3, map.size()); assertTrue(manys.contains("A")); assertFalse(manys.contains("B")); } /** * Test method for * {@link org.apache.wicket.security.util.ManyToManyMap#getLeft(java.lang.Object)} . */ public void testGet() { ManyToManyMap<String, String> map = new ManyToManyMap<String, String>(); map.add("A.1", "A"); map.add("A.2", "A"); Set<String> manys = map.getLeft("B"); assertNotNull(manys); assertTrue(manys.isEmpty()); manys = map.getLeft("A"); assertFalse(manys.isEmpty()); assertEquals(2, manys.size()); } /** * Test method for {@link org.apache.wicket.security.util.ManyToManyMap#size()}. */ public void testSize() { ManyToManyMap<String, String> map = new ManyToManyMap<String, String>(); assertEquals(0, map.size()); map.add("A.1", "A"); map.add("A.2", "A"); assertEquals(3, map.size()); } /** * Test method for * {@link org.apache.wicket.security.util.ManyToManyMap#numberOfmappingsForLeft(Object)} * and right. */ public void testNumberOfmappings() { ManyToManyMap<String, String> map = new ManyToManyMap<String, String>(); map.add("A.1", "A"); map.add("A.2", "A"); assertEquals(2, map.numberOfmappingsForRight("A")); assertEquals(1, map.numberOfmappingsForLeft("A.1")); assertEquals(0, map.numberOfmappingsForRight("B")); } /** * Test method for * {@link org.apache.wicket.security.util.ManyToManyMap#containsLeft(Object)} and * right. */ public void testContains() { ManyToManyMap<String, String> map = new ManyToManyMap<String, String>(); map.add("A.1", "A"); assertTrue(map.containsRight("A")); assertTrue(map.containsLeft("A.1")); assertFalse(map.containsLeft("A.2")); } /** * Test method for {@link org.apache.wicket.security.util.ManyToManyMap#isEmpty()}. */ public void testIsEmpty() { assertTrue(new ManyToManyMap<String, String>().isEmpty()); } /** * Test method for {@link org.apache.wicket.security.util.ManyToManyMap#clear()}. */ public void testClear() { ManyToManyMap<Integer, Integer> map = new ManyToManyMap<Integer, Integer>(); map.add(1, 10); assertFalse(map.isEmpty()); map.clear(); assertTrue(map.isEmpty()); } }