use of de.codecentric.boot.admin.server.domain.events.InstanceDeregisteredEvent in project spring-boot-admin by codecentric.
the class MicrosoftTeamsNotifierTest method test_getDeregisteredMessageForAppReturns_correctContent.
@Test
void test_getDeregisteredMessageForAppReturns_correctContent() {
Message message = notifier.getDeregisteredMessage(instance, notifier.createEvaluationContext(new InstanceDeregisteredEvent(instance.getId(), 1L), instance));
assertMessage(message, notifier.getDeRegisteredTitle(), notifier.getMessageSummary(), "Test App with id TestAppId has de-registered from Spring Boot Admin", BLUE);
}
use of de.codecentric.boot.admin.server.domain.events.InstanceDeregisteredEvent in project spring-boot-admin by codecentric.
the class MicrosoftTeamsNotifierTest method test_onClientApplicationDeRegisteredEvent_resolve.
@Test
@SuppressWarnings("unchecked")
void test_onClientApplicationDeRegisteredEvent_resolve() {
InstanceDeregisteredEvent event = new InstanceDeregisteredEvent(instance.getId(), 1L);
StepVerifier.create(notifier.doNotify(event, instance)).verifyComplete();
ArgumentCaptor<HttpEntity<Message>> entity = ArgumentCaptor.forClass(HttpEntity.class);
verify(mockRestTemplate).postForEntity(eq(URI.create("http://example.com")), entity.capture(), eq(Void.class));
assertThat(entity.getValue().getHeaders().getContentType()).isEqualTo(MediaType.APPLICATION_JSON);
assertMessage(entity.getValue().getBody(), notifier.getDeRegisteredTitle(), notifier.getMessageSummary(), "Test App with id TestAppId has de-registered from Spring Boot Admin", BLUE);
}
use of de.codecentric.boot.admin.server.domain.events.InstanceDeregisteredEvent in project spring-boot-admin by codecentric.
the class MicrosoftTeamsNotifierTest method test_getRegisteredMessageForAppReturns_correctContent.
@Test
void test_getRegisteredMessageForAppReturns_correctContent() {
Message message = notifier.getRegisteredMessage(instance, notifier.createEvaluationContext(new InstanceDeregisteredEvent(instance.getId(), 1L), instance));
assertMessage(message, notifier.getRegisteredTitle(), notifier.getMessageSummary(), "Test App with id TestAppId has registered with Spring Boot Admin", BLUE);
}
use of de.codecentric.boot.admin.server.domain.events.InstanceDeregisteredEvent in project spring-boot-admin by codecentric.
the class InstanceTest method should_throw_when_applied_wrong_event.
@Test
public void should_throw_when_applied_wrong_event() {
Instance instance = Instance.create(InstanceId.of("id"));
assertThatThrownBy(() -> instance.apply((InstanceEvent) null)).isInstanceOf(IllegalArgumentException.class).hasMessage("'event' must not be null");
assertThatThrownBy(() -> instance.apply(new InstanceDeregisteredEvent(InstanceId.of("wrong"), 0L))).isInstanceOf(IllegalArgumentException.class).hasMessage("'event' must refer the same instance");
assertThatThrownBy(() -> instance.apply(new InstanceDeregisteredEvent(InstanceId.of("id"), 1L)).apply(new InstanceDeregisteredEvent(InstanceId.of("id"), 1L))).isInstanceOf(IllegalArgumentException.class).hasMessage("Event 1 must be greater or equal to 2");
}
use of de.codecentric.boot.admin.server.domain.events.InstanceDeregisteredEvent in project spring-boot-admin by codecentric.
the class AbstractEventStoreTest method concurrent_read_writes.
@Test
public void concurrent_read_writes() {
InstanceId id = InstanceId.of("a");
InstanceEventStore store = createStore(500);
Function<Integer, InstanceEvent> eventFactory = (i) -> new InstanceDeregisteredEvent(id, i);
Flux<Void> eventgenerator = Flux.range(0, 500).map(eventFactory).buffer(2).flatMap((events) -> store.append(events).onErrorResume(OptimisticLockingException.class, (ex) -> {
log.info("skipped {}", ex.getMessage());
return Mono.empty();
}).delayElement(Duration.ofMillis(5L)));
StepVerifier.create(eventgenerator.subscribeOn(Schedulers.newSingle("a")).mergeWith(eventgenerator.subscribeOn(Schedulers.newSingle("a"))).mergeWith(eventgenerator.subscribeOn(Schedulers.newSingle("a"))).mergeWith(eventgenerator.subscribeOn(Schedulers.newSingle("a"))).then()).verifyComplete();
List<Long> versions = store.find(id).map(InstanceEvent::getVersion).collectList().block();
List<Long> expected = LongStream.range(0, 500).boxed().collect(toList());
assertThat(versions).containsExactlyElementsOf(expected);
}
Aggregations