Search in sources :

Example 11 with InstanceDeregisteredEvent

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);
}
Also used : Message(de.codecentric.boot.admin.server.notify.MicrosoftTeamsNotifier.Message) InstanceDeregisteredEvent(de.codecentric.boot.admin.server.domain.events.InstanceDeregisteredEvent) Test(org.junit.jupiter.api.Test)

Example 12 with InstanceDeregisteredEvent

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);
}
Also used : HttpEntity(org.springframework.http.HttpEntity) InstanceDeregisteredEvent(de.codecentric.boot.admin.server.domain.events.InstanceDeregisteredEvent) Test(org.junit.jupiter.api.Test)

Example 13 with InstanceDeregisteredEvent

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);
}
Also used : Message(de.codecentric.boot.admin.server.notify.MicrosoftTeamsNotifier.Message) InstanceDeregisteredEvent(de.codecentric.boot.admin.server.domain.events.InstanceDeregisteredEvent) Test(org.junit.jupiter.api.Test)

Example 14 with InstanceDeregisteredEvent

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");
}
Also used : InstanceDeregisteredEvent(de.codecentric.boot.admin.server.domain.events.InstanceDeregisteredEvent) InstanceEvent(de.codecentric.boot.admin.server.domain.events.InstanceEvent) Test(org.junit.jupiter.api.Test)

Example 15 with InstanceDeregisteredEvent

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);
}
Also used : Registration(de.codecentric.boot.admin.server.domain.values.Registration) LongStream(java.util.stream.LongStream) Logger(org.slf4j.Logger) StepVerifier(reactor.test.StepVerifier) InstanceId(de.codecentric.boot.admin.server.domain.values.InstanceId) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) LoggerFactory(org.slf4j.LoggerFactory) InstanceDeregisteredEvent(de.codecentric.boot.admin.server.domain.events.InstanceDeregisteredEvent) Mono(reactor.core.publisher.Mono) Instant(java.time.Instant) Function(java.util.function.Function) Collections.singletonList(java.util.Collections.singletonList) Test(org.junit.jupiter.api.Test) Flux(reactor.core.publisher.Flux) List(java.util.List) Collectors.toList(java.util.stream.Collectors.toList) Arrays.asList(java.util.Arrays.asList) Duration(java.time.Duration) StatusInfo(de.codecentric.boot.admin.server.domain.values.StatusInfo) Schedulers(reactor.core.scheduler.Schedulers) InstanceRegisteredEvent(de.codecentric.boot.admin.server.domain.events.InstanceRegisteredEvent) InstanceStatusChangedEvent(de.codecentric.boot.admin.server.domain.events.InstanceStatusChangedEvent) InstanceEvent(de.codecentric.boot.admin.server.domain.events.InstanceEvent) InstanceId(de.codecentric.boot.admin.server.domain.values.InstanceId) InstanceDeregisteredEvent(de.codecentric.boot.admin.server.domain.events.InstanceDeregisteredEvent) InstanceEvent(de.codecentric.boot.admin.server.domain.events.InstanceEvent) Test(org.junit.jupiter.api.Test)

Aggregations

InstanceDeregisteredEvent (de.codecentric.boot.admin.server.domain.events.InstanceDeregisteredEvent)18 Test (org.junit.jupiter.api.Test)16 InstanceEvent (de.codecentric.boot.admin.server.domain.events.InstanceEvent)5 InstanceRegisteredEvent (de.codecentric.boot.admin.server.domain.events.InstanceRegisteredEvent)5 Message (de.codecentric.boot.admin.server.notify.MicrosoftTeamsNotifier.Message)5 InstanceStatusChangedEvent (de.codecentric.boot.admin.server.domain.events.InstanceStatusChangedEvent)4 Instant (java.time.Instant)4 InstanceId (de.codecentric.boot.admin.server.domain.values.InstanceId)3 Registration (de.codecentric.boot.admin.server.domain.values.Registration)2 StatusInfo (de.codecentric.boot.admin.server.domain.values.StatusInfo)2 JSONObject (org.json.JSONObject)2 HttpEntity (org.springframework.http.HttpEntity)2 InstanceEndpointsDetectedEvent (de.codecentric.boot.admin.server.domain.events.InstanceEndpointsDetectedEvent)1 InstanceInfoChangedEvent (de.codecentric.boot.admin.server.domain.events.InstanceInfoChangedEvent)1 InstanceRegistrationUpdatedEvent (de.codecentric.boot.admin.server.domain.events.InstanceRegistrationUpdatedEvent)1 Endpoints (de.codecentric.boot.admin.server.domain.values.Endpoints)1 Info (de.codecentric.boot.admin.server.domain.values.Info)1 Duration (java.time.Duration)1 Arrays.asList (java.util.Arrays.asList)1 Collections.singletonList (java.util.Collections.singletonList)1