package com.bazaarvoice.ostrich;
import com.google.common.collect.ImmutableMap;
import org.junit.Test;
import java.util.Map;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
public class PartitionContextBuilderTest {
private static final String FOO_KEY = "foo";
private static final String BAR_KEY = "bar";
private static final String FOO_OBJECT = "foo object";
private static final Object BAR_OBJECT = "bar object";
private static final Object DEFAULT_OBJECT = "default object";
@Test
public void testEmpty() {
assertTrue(PartitionContextBuilder.empty().asMap().isEmpty());
assertNull(PartitionContextBuilder.empty().get());
}
@Test
public void testOfNoKey() {
PartitionContext context = PartitionContextBuilder.of(DEFAULT_OBJECT);
assertSame(DEFAULT_OBJECT, context.get());
assertEquals(ImmutableMap.of("", DEFAULT_OBJECT), context.asMap());
}
@Test
public void testOfOneKey() {
PartitionContext context = PartitionContextBuilder.of(FOO_KEY, FOO_OBJECT);
assertSame(FOO_OBJECT, context.get(FOO_KEY));
assertEquals(ImmutableMap.of(FOO_KEY, FOO_OBJECT), context.asMap());
}
@Test
public void testOfTwoKeys() {
PartitionContext context = PartitionContextBuilder.of(FOO_KEY, FOO_OBJECT, BAR_KEY, BAR_OBJECT);
assertSame(FOO_OBJECT, context.get(FOO_KEY));
assertSame(BAR_OBJECT, context.get(BAR_KEY));
assertEquals(ImmutableMap.of(FOO_KEY, FOO_OBJECT, BAR_KEY, BAR_OBJECT), context.asMap());
}
@Test
public void testPut() {
PartitionContext context = new PartitionContextBuilder().put(FOO_KEY, FOO_OBJECT).build();
assertSame(FOO_OBJECT, context.get(FOO_KEY));
assertEquals(ImmutableMap.of(FOO_KEY, FOO_OBJECT), context.asMap());
}
@Test
public void testPutAll() {
Map<String, Object> map = ImmutableMap.of(FOO_KEY, FOO_OBJECT, BAR_KEY, BAR_OBJECT);
PartitionContext context = new PartitionContextBuilder().putAll(map).build();
assertSame(FOO_OBJECT, context.get(FOO_KEY));
assertSame(BAR_OBJECT, context.get(BAR_KEY));
assertEquals(ImmutableMap.of(FOO_KEY, FOO_OBJECT, BAR_KEY, BAR_OBJECT), context.asMap());
}
}