use of io.gravitee.gateway.services.sync.builder.RepositoryApiBuilder in project gravitee-gateway by gravitee-io.
the class SyncManagerTest method test_shouldUndeployIfLastEventIsUnpublishAPI.
@Test
public void test_shouldUndeployIfLastEventIsUnpublishAPI() throws Exception {
io.gravitee.repository.management.model.Api api = new RepositoryApiBuilder().id("api-test").updatedAt(new Date()).definition("test").build();
final Api mockApi = mockApi(api);
final Event mockEvent = mockEvent(api, EventType.PUBLISH_API);
final Event mockEvent2 = mockEvent(api, EventType.UNPUBLISH_API);
when(eventRepository.search(any(EventCriteria.class), any(Pageable.class))).thenReturn(new Page<>(Collections.singletonList(mockEvent), 0, 0, 1), new Page<>(Collections.singletonList(mockEvent2), 0, 0, 1));
when(apiRepository.findAll()).thenReturn(Collections.singleton(api));
syncManager.refresh();
when(apiManager.apis()).thenReturn(Collections.singleton(mockApi));
when(apiRepository.findAll()).thenReturn(Collections.singleton(api));
syncManager.refresh();
verify(apiManager).deploy(mockApi);
verify(apiManager, never()).update(any(Api.class));
verify(apiManager).undeploy(mockApi.getId());
}
use of io.gravitee.gateway.services.sync.builder.RepositoryApiBuilder in project gravitee-gateway by gravitee-io.
the class SyncManagerTest method test_shouldUpdateIfLastEventIsStopAPI.
@Test
public void test_shouldUpdateIfLastEventIsStopAPI() throws Exception {
io.gravitee.repository.management.model.Api api = new RepositoryApiBuilder().id("api-test").updatedAt(new Date()).definition("test").lifecycleState(LifecycleState.STARTED).build();
Instant updateDateInst = api.getUpdatedAt().toInstant().plus(Duration.ofHours(1));
io.gravitee.repository.management.model.Api api2 = new RepositoryApiBuilder().id("api-test").updatedAt(Date.from(updateDateInst)).definition("test").lifecycleState(LifecycleState.STOPPED).build();
final Api mockApi = mockApi(api);
mockApi(api2);
final Event mockEvent = mockEvent(api, EventType.PUBLISH_API);
final Event mockEvent2 = mockEvent(api2, EventType.STOP_API);
List<Event> events = new ArrayList<Event>();
events.add(mockEvent);
events.add(mockEvent2);
when(eventRepository.search(any(EventCriteria.class), any(Pageable.class))).thenReturn(new Page<>(Collections.singletonList(mockEvent), 0, 0, 1));
when(apiRepository.findAll()).thenReturn(Collections.singleton(api));
when(apiManager.apis()).thenReturn(Collections.singleton(mockApi));
syncManager.refresh();
when(eventRepository.search(any(EventCriteria.class), any(Pageable.class))).thenReturn(new Page<>(events, 0, 0, 2));
when(apiRepository.findAll()).thenReturn(Collections.singleton(api2));
when(apiManager.get(api.getId())).thenReturn(mockApi);
syncManager.refresh();
verify(apiManager).deploy(mockApi);
verify(apiManager).update(mockApi);
verify(apiManager, never()).undeploy(any(String.class));
}
use of io.gravitee.gateway.services.sync.builder.RepositoryApiBuilder in project gravitee-gateway by gravitee-io.
the class SyncManagerTest method test_shouldUpdateIfLastEventIsStartAPI.
@Test
public void test_shouldUpdateIfLastEventIsStartAPI() throws Exception {
io.gravitee.repository.management.model.Api api = new RepositoryApiBuilder().id("api-test").updatedAt(new Date()).definition("test").lifecycleState(LifecycleState.STOPPED).build();
Instant updateDateInst = api.getUpdatedAt().toInstant().plus(Duration.ofHours(1));
io.gravitee.repository.management.model.Api api2 = new RepositoryApiBuilder().id("api-test").updatedAt(Date.from(updateDateInst)).definition("test").lifecycleState(LifecycleState.STARTED).build();
final Api mockApi = mockApi(api);
mockApi(api2);
final Event mockEvent = mockEvent(api, EventType.PUBLISH_API);
final Event mockEvent2 = mockEvent(api2, EventType.START_API);
List<Event> events = new ArrayList<Event>();
events.add(mockEvent);
events.add(mockEvent2);
when(eventRepository.search(any(EventCriteria.class), any(Pageable.class))).thenReturn(new Page<>(Collections.singletonList(mockEvent), 0, 0, 1));
when(apiRepository.findAll()).thenReturn(Collections.singleton(api));
syncManager.refresh();
when(eventRepository.search(any(EventCriteria.class), any(Pageable.class))).thenReturn(new Page<>(events, 0, 0, 2));
when(apiRepository.findAll()).thenReturn(Collections.singleton(api2));
when(apiManager.get(api.getId())).thenReturn(mockApi);
syncManager.refresh();
verify(apiManager).deploy(mockApi);
verify(apiManager).update(mockApi);
verify(apiManager, never()).undeploy(any(String.class));
}
use of io.gravitee.gateway.services.sync.builder.RepositoryApiBuilder in project gravitee-gateway by gravitee-io.
the class SyncManagerTest method test_twiceWithTwoApis_apiToUpdate.
@Test
public void test_twiceWithTwoApis_apiToUpdate() throws Exception {
io.gravitee.repository.management.model.Api api = new RepositoryApiBuilder().id("api-test").updatedAt(new Date()).definition("test").build();
Instant updateDateInst = api.getUpdatedAt().toInstant().plus(Duration.ofHours(1));
io.gravitee.repository.management.model.Api api2 = new RepositoryApiBuilder().id("api-test").updatedAt(Date.from(updateDateInst)).definition("test2").build();
final Api mockApi = mockApi(api);
mockApi(api2);
final Event mockEvent = mockEvent(api, EventType.PUBLISH_API);
final Event mockEvent2 = mockEvent(api2, EventType.PUBLISH_API);
List<Event> events = new ArrayList<Event>();
events.add(mockEvent);
events.add(mockEvent2);
when(eventRepository.search(any(EventCriteria.class), any(Pageable.class))).thenReturn(new Page<>(events, 0, 0, 1));
when(apiRepository.findAll()).thenReturn(Collections.singleton(api));
syncManager.refresh();
when(apiRepository.findAll()).thenReturn(Collections.singleton(api2));
when(apiManager.get(api.getId())).thenReturn(mockApi);
syncManager.refresh();
verify(apiManager).deploy(mockApi);
verify(apiManager).update(mockApi);
verify(apiManager, never()).undeploy(any(String.class));
}
use of io.gravitee.gateway.services.sync.builder.RepositoryApiBuilder in project gravitee-gateway by gravitee-io.
the class SyncManagerTest method test_twiceWithTwoApis.
@Test
public void test_twiceWithTwoApis() throws Exception {
io.gravitee.repository.management.model.Api api = new RepositoryApiBuilder().id("api-test").updatedAt(new Date()).definition("test").build();
final Api mockApi = mockApi(api);
final Event mockEvent = mockEvent(api, EventType.PUBLISH_API);
when(eventRepository.search(any(EventCriteria.class), any(Pageable.class))).thenReturn(new Page<>(Collections.singletonList(mockEvent), 0, 0, 1));
when(apiRepository.findAll()).thenReturn(Collections.singleton(api));
syncManager.refresh();
io.gravitee.repository.management.model.Api api2 = new RepositoryApiBuilder().id("api-test-2").updatedAt(new Date()).definition("test2").build();
final Api mockApi2 = mockApi(api2);
final Event mockEvent2 = mockEvent(api2, EventType.PUBLISH_API);
Set<io.gravitee.repository.management.model.Api> apis = new HashSet<>();
apis.add(api);
apis.add(api2);
List<Event> events = new ArrayList<>();
events.add(mockEvent);
events.add(mockEvent2);
when(eventRepository.search(any(EventCriteria.class), any(Pageable.class))).thenReturn(new Page<>(events, 0, 0, 1), new Page<>(Collections.emptyList(), 0, 0, 1));
when(apiRepository.findAll()).thenReturn(apis);
syncManager.refresh();
verify(apiManager, times(2)).deploy(argThat(new ArgumentMatcher<Api>() {
@Override
public boolean matches(Object argument) {
final Api api = (Api) argument;
return api.getId().equals(mockApi.getId()) || api2.getId().equals(mockApi2.getId());
}
}));
verify(apiManager, never()).update(any(Api.class));
verify(apiManager, never()).undeploy(any(String.class));
}
Aggregations