/** * Copyright (c) 2012, University of Konstanz, Distributed Systems Group * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of the University of Konstanz nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package org.jscsi.parser.datasegment; import static org.testng.AssertJUnit.assertFalse; import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertTrue; import org.testng.annotations.Test; import org.testng.annotations.BeforeMethod; /** * <h1>SettingsMapTest</h1> * <p/> * * @author Volker Wildi */ public final class SettingsMapTest { // -------------------------------------------------------------------------- // -------------------------------------------------------------------------- private static SettingsMap settingsMap; // -------------------------------------------------------------------------- // -------------------------------------------------------------------------- @BeforeMethod public final void setUp() { settingsMap = new SettingsMap(); } // -------------------------------------------------------------------------- // -------------------------------------------------------------------------- @Test public final void testAdd() { settingsMap.add(OperationalTextKey.AUTH_METHOD, "None,CRC32CDigest"); } @Test public final void testGet() { settingsMap.add(OperationalTextKey.MAX_CONNECTIONS, "512"); assertEquals("512", settingsMap.get(OperationalTextKey.MAX_CONNECTIONS)); } @Test(expectedExceptions = IllegalArgumentException.class) public final void testRemove1() { settingsMap.add(OperationalTextKey.AUTH_METHOD, "None"); settingsMap.remove(OperationalTextKey.DATA_DIGEST); } @Test public final void testRemove2() { settingsMap.add(OperationalTextKey.DATA_PDU_IN_ORDER, "No"); settingsMap.add(OperationalTextKey.ERROR_RECOVERY_LEVEL, "1"); assertEquals(2, settingsMap.entrySet().size()); settingsMap.remove(OperationalTextKey.ERROR_RECOVERY_LEVEL); assertEquals(1, settingsMap.entrySet().size()); } @Test public final void testEquals() { settingsMap.add(OperationalTextKey.DATA_DIGEST, "Yes"); SettingsMap anotherSettingsMap = new SettingsMap(); anotherSettingsMap.add(OperationalTextKey.DATA_DIGEST, "Yes"); assertTrue(settingsMap.equals(anotherSettingsMap)); } @Test public final void testUnequals() { settingsMap.add(OperationalTextKey.DATA_DIGEST, "Yes"); SettingsMap anotherSettingsMap = new SettingsMap(); anotherSettingsMap.add(OperationalTextKey.DATA_DIGEST, "No"); assertFalse(settingsMap.equals(anotherSettingsMap)); } @Test public final void testClear() { settingsMap.add(OperationalTextKey.DEFAULT_TIME_2_WAIT, "2"); assertEquals("2", settingsMap.get(OperationalTextKey.DEFAULT_TIME_2_WAIT)); settingsMap.clear(); settingsMap.get(OperationalTextKey.DEFAULT_TIME_2_WAIT); } // -------------------------------------------------------------------------- // -------------------------------------------------------------------------- @Test public final void testAndMerge() { settingsMap.add(OperationalTextKey.IF_MARKER, "Yes"); settingsMap.add(OperationalTextKey.OF_MARKER, "No"); assertEquals(2, settingsMap.entrySet().size()); final ResultFunctionFactory resultFactory = new ResultFunctionFactory(); settingsMap.update(OperationalTextKey.IF_MARKER, "Yes", resultFactory.create("And")); assertEquals(2, settingsMap.entrySet().size()); assertEquals("Yes", settingsMap.get(OperationalTextKey.IF_MARKER)); settingsMap.update(OperationalTextKey.OF_MARKER, "No", resultFactory.create("And")); assertEquals(2, settingsMap.entrySet().size()); assertEquals("No", settingsMap.get(OperationalTextKey.OF_MARKER)); } @Test public final void testOrMerge() { settingsMap.add(OperationalTextKey.DATA_PDU_IN_ORDER, "Yes"); settingsMap.add(OperationalTextKey.IMMEDIATE_DATA, "No"); assertEquals(2, settingsMap.entrySet().size()); final ResultFunctionFactory resultFactory = new ResultFunctionFactory(); settingsMap.update(OperationalTextKey.DATA_PDU_IN_ORDER, "No", resultFactory.create("Or")); assertEquals(2, settingsMap.entrySet().size()); assertEquals("Yes", settingsMap.get(OperationalTextKey.DATA_PDU_IN_ORDER)); } // -------------------------------------------------------------------------- // -------------------------------------------------------------------------- @Test public final void testMaxMerge() { settingsMap.add(OperationalTextKey.IF_MARKER, "Yes"); settingsMap.add(OperationalTextKey.DEFAULT_TIME_2_WAIT, "4"); assertEquals(2, settingsMap.entrySet().size()); final ResultFunctionFactory resultFactory = new ResultFunctionFactory(); settingsMap.update(OperationalTextKey.DEFAULT_TIME_2_WAIT, "5", resultFactory.create("Max")); assertEquals(2, settingsMap.entrySet().size()); assertEquals("5", settingsMap.get(OperationalTextKey.DEFAULT_TIME_2_WAIT)); } @Test public final void testMinMerge() { settingsMap.add(OperationalTextKey.MAX_RECV_DATA_SEGMENT_LENGTH, "16384"); settingsMap.add(OperationalTextKey.FIRST_BURST_LENGTH, "4096"); assertEquals(2, settingsMap.entrySet().size()); final ResultFunctionFactory resultFactory = new ResultFunctionFactory(); settingsMap.update(OperationalTextKey.MAX_RECV_DATA_SEGMENT_LENGTH, "4096", resultFactory .create("Min")); assertEquals(2, settingsMap.entrySet().size()); assertEquals("4096", settingsMap.get(OperationalTextKey.MAX_RECV_DATA_SEGMENT_LENGTH)); settingsMap.update(OperationalTextKey.FIRST_BURST_LENGTH, "8192", resultFactory.create("Min")); assertEquals(2, settingsMap.entrySet().size()); assertEquals("4096", settingsMap.get(OperationalTextKey.FIRST_BURST_LENGTH)); } // -------------------------------------------------------------------------- // -------------------------------------------------------------------------- // -------------------------------------------------------------------------- // -------------------------------------------------------------------------- }