package org.robotframework.services.event;
import static org.assertj.core.api.Assertions.assertThat;
import java.util.HashMap;
import java.util.Map;
import org.junit.Test;
import org.osgi.service.event.Event;
public class EventsTest {
@Test
public void thereIsNoData_whenKeyIsNotDefinedInEvent() {
final Map<String, Object> data = new HashMap<>();
data.put("a", "val1");
data.put("b", "val2");
final Event event = new Event("topic", data);
assertThat(Events.get(event, "key", Object.class)).isNull();
}
@Test
public void thereIsNoData_whenDataUnderKeyIsOfUnexpectedType() {
final Map<String, Object> data = new HashMap<>();
data.put("key", new A());
final Event event = new Event("topic", data);
assertThat(Events.get(event, "key", C.class)).isNull();
}
@Test
public void thereIsAData_whenDataUnderKeyIsOfSameType() {
final Map<String, Object> data = new HashMap<>();
final A a = new A();
data.put("key", a);
final Event event = new Event("topic", data);
assertThat(Events.get(event, "key", A.class)).isSameAs(a);
}
@Test
public void thereIsAData_whenDataUnderKeyIsSubtypeOfGiven() {
final Map<String, Object> data = new HashMap<>();
final B b = new B();
data.put("key", b);
final Event event = new Event("topic", data);
assertThat(Events.get(event, "key", A.class)).isSameAs(b);
}
private static class A {}
private static class B extends A {}
private static class C {}
}