[BAEL-9547] - Moved 3 articles from guava to guava-collections

This commit is contained in:
amit2103
2018-10-19 12:23:39 +05:30
parent 8caaf77556
commit 361448cc39
4 changed files with 4 additions and 4 deletions

View File

@@ -0,0 +1,70 @@
package org.baeldung.guava;
import com.google.common.collect.ClassToInstanceMap;
import com.google.common.collect.ImmutableClassToInstanceMap;
import com.google.common.collect.MutableClassToInstanceMap;
import org.junit.Test;
import static org.junit.Assert.*;
public class ClassToInstanceMapUnitTest {
@Test
public void whenOfCalled_thenCreateEmptyImmutableMap() {
ClassToInstanceMap<Action> map = ImmutableClassToInstanceMap.of();
assertTrue(map.isEmpty());
}
@Test
public void whenCreateCalled_thenCreateEmptyMutableMap() {
ClassToInstanceMap<Action> map = MutableClassToInstanceMap.create();
assertTrue(map.isEmpty());
}
@Test
public void whenOfWithParameterCalled_thenCreateSingleEntryMap() {
ClassToInstanceMap<Action> map = ImmutableClassToInstanceMap.of(Save.class, new Save());
assertEquals(1, map.size());
}
@Test
public void whenBuilderUser_thenCreateMap() {
ClassToInstanceMap<Action> map = ImmutableClassToInstanceMap.<Action>builder()
.put(Save.class, new Save())
.put(Open.class, new Open())
.build();
assertEquals(2, map.size());
}
@Test
public void givenClassToInstanceMap_whenGetCalled_returnUpperBoundElement() {
ClassToInstanceMap<Action> map = ImmutableClassToInstanceMap.of(Save.class, new Save());
Action action = map.get(Save.class);
assertTrue(action instanceof Save);
// Use getInstance to avoid casting
Save save = map.getInstance(Save.class);
}
@Test
public void givenClassToInstanceMap_whenPutCalled_returnPreviousElementUpperBound() {
ClassToInstanceMap<Action> map = MutableClassToInstanceMap.create();
map.put(Save.class, new Save());
// Put again to get previous value returned
Action action = map.put(Save.class, new Save());
assertTrue(action instanceof Save);
// Use putInstance to avoid casting
Save save = map.putInstance(Save.class, new Save());
}
}
abstract class Action {
}
class Save extends Action {
}
class Open extends Action {
}
class Delete extends Action {
}