Fix missing TargetUpdate events (#476)
* Fix problem where target assignment sends not all events. Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com> * Improved concurrency. Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com> * Revert send assigned event change. Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com> * Adapt tests. Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com> * Readibility. Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>
This commit is contained in:
@@ -16,6 +16,7 @@ import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.eclipse.hawkbit.repository.test.util.TestContextProvider;
|
||||
import org.junit.Assert;
|
||||
@@ -27,7 +28,7 @@ import org.springframework.context.ApplicationListener;
|
||||
import org.springframework.context.ConfigurableApplicationContext;
|
||||
import org.springframework.context.event.ApplicationEventMulticaster;
|
||||
|
||||
import com.google.common.collect.HashMultiset;
|
||||
import com.google.common.collect.ConcurrentHashMultiset;
|
||||
import com.google.common.collect.Multiset;
|
||||
import com.google.common.collect.Sets;
|
||||
import com.jayway.awaitility.Awaitility;
|
||||
@@ -111,20 +112,20 @@ public class EventVerifier implements TestRule {
|
||||
|
||||
private static class EventCaptor implements ApplicationListener<RemoteApplicationEvent> {
|
||||
|
||||
private final Multiset<Class<?>> capturedEvents = HashMultiset.create();
|
||||
private final Multiset<Class<?>> capturedEvents = ConcurrentHashMultiset.create();
|
||||
|
||||
@Override
|
||||
public synchronized void onApplicationEvent(final RemoteApplicationEvent event) {
|
||||
public void onApplicationEvent(final RemoteApplicationEvent event) {
|
||||
capturedEvents.add(event.getClass());
|
||||
}
|
||||
|
||||
public synchronized int getCountFor(final Class<?> expectedEvent) {
|
||||
public int getCountFor(final Class<?> expectedEvent) {
|
||||
return capturedEvents.count(expectedEvent);
|
||||
}
|
||||
|
||||
public synchronized Set<Class<?>> diff(final Expect[] allEvents) {
|
||||
public Set<Class<?>> diff(final Expect[] allEvents) {
|
||||
return Sets.difference(capturedEvents.elementSet(),
|
||||
java.util.stream.Stream.of(allEvents).map((e) -> e.type()).collect(Collectors.toSet()));
|
||||
Stream.of(allEvents).map(Expect::type).collect(Collectors.toSet()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user