/* * Copyright (C) 2011 Google Inc. * * Licensed 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.ros.internal.node.server; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import com.google.common.collect.Maps; import org.junit.Before; import org.junit.Test; import org.ros.namespace.GraphName; import java.util.Collection; import java.util.Map; /** * @author damonkohler@google.com (Damon Kohler) */ public class ParameterServerTest { private ParameterServer server; @Before public void setup() { server = new ParameterServer(); } @Test public void testGetNonExistent() { assertEquals(null, server.get(GraphName.of("/foo"))); assertEquals(null, server.get(GraphName.of("/foo/bar"))); } @Test public void testSetAndGetShallow() { server.set(GraphName.of("/foo"), "bloop"); assertEquals("bloop", server.get(GraphName.of("/foo"))); } @Test public void testSetAndGetDeep() { server.set(GraphName.of("/foo/bar"), "bloop"); assertEquals("bloop", server.get(GraphName.of("/foo/bar"))); } @Test public void testSetAndGet() { server.set(GraphName.of("/foo"), "bloop"); assertEquals("bloop", server.get(GraphName.of("/foo"))); server.set(GraphName.of("/foo/bar"), "bloop"); assertEquals("bloop", server.get(GraphName.of("/foo/bar"))); server.set(GraphName.of("/foo/bar/baz"), "bloop"); assertEquals("bloop", server.get(GraphName.of("/foo/bar/baz"))); } @Test public void testSetDeepAndGetShallow() { server.set(GraphName.of("/foo/bar"), "bloop"); Map<String, Object> expected = Maps.newHashMap(); expected.put("bar", "bloop"); assertEquals(expected, server.get(GraphName.of("/foo"))); } @Test public void testSetOverwritesMap() { server.set(GraphName.of("/foo/bar"), "bloop"); assertEquals("bloop", server.get(GraphName.of("/foo/bar"))); server.set(GraphName.of("/foo"), "bloop"); assertEquals("bloop", server.get(GraphName.of("/foo"))); } @Test public void testSetAndGetFloat() { GraphName name = GraphName.of("/foo/bar"); server.set(name, 0.42f); assertEquals(0.42, (Double) server.get(name), 0.1); } @Test public void testDeleteShallow() { GraphName name = GraphName.of("/foo"); server.set(name, "bloop"); server.delete(name); assertEquals(null, server.get(name)); } @Test public void testDeleteDeep() { GraphName name = GraphName.of("/foo/bar"); server.set(name, "bloop"); server.delete(name); assertEquals(null, server.get(name)); } @Test public void testHas() { server.set(GraphName.of("/foo/bar/baz"), "bloop"); assertTrue(server.has(GraphName.of("/foo/bar/baz"))); assertTrue(server.has(GraphName.of("/foo/bar"))); assertTrue(server.has(GraphName.of("/foo"))); assertTrue(server.has(GraphName.of("/"))); } @Test public void testGetNames() { GraphName name1 = GraphName.of("/foo/bar/baz"); server.set(name1, "bloop"); GraphName name2 = GraphName.of("/testing"); server.set(name2, "123"); Collection<GraphName> names = server.getNames(); assertEquals(2, names.size()); assertTrue(names.contains(name1)); assertTrue(names.contains(name2)); } }