package org.robotframework.javalib.keyword; import java.util.Arrays; import org.robotframework.javalib.keyword.KeywordMap; import junit.framework.TestCase; public class KeywordMapTest extends TestCase { private KeywordMap map; private String keywordName = "My Keyword"; private String keywordValue = "Value"; protected void setUp() throws Exception { map = new KeywordMap(); } public void testAddsKeywordsToMap() throws Exception { map.add(keywordName, keywordValue); assertEquals(1, map.size()); } public void testGetsValueUsingKeywordNameAsKey() throws Exception { map.add(keywordName, keywordValue); assertEquals(keywordValue, map.get(keywordName)); } public void testStoredKeywordNamesAreUnique() throws Exception { map.add(keywordName, ""); try { map.add(keywordName, ""); fail(); } catch(IllegalArgumentException e) { assertTrue(true); } } public void testNullKeywordNamesAreNotAllowed() throws Exception { try { map.add(null, ""); fail(); } catch(IllegalArgumentException e) { assertTrue(true); } } public void testNullKeywordValuesAreNotAllowed() throws Exception { try { map.add("", null); fail(); } catch(IllegalArgumentException e) { assertTrue(true); } } public void testNormalizesKeywordNames() throws Exception { map.add("Keyword Name", ""); assertTrue(map.getUnderlyingMap().containsKey("keywordname")); } public void testCanReturnsArrayOfKeywordNames() throws Exception { map.add("First Keyword", ""); map.add("Second Keyword", ""); String[] keywordNames = map.getKeywordNames(); assertTrue(Arrays.equals(new String[] { "firstkeyword", "secondkeyword" }, keywordNames)); } public void testCanBeQueriedForContainedKeywords() throws Exception { map.add(keywordName, keywordValue); assertTrue(map.containsKeyword(keywordName)); } }