SW360ComponentClientAdapterAsyncImpl implements SW360ComponentClientAdapterAsync { @Override public CompletableFuture<SW360Component> createComponent(SW360Component component) { return FutureUtils.wrapInFuture(() -> SW360ComponentAdapterUtils.validateComponent(component), "Cannot create invalid component for " + component.getName()) .thenCompose(getComponentClient()::createComponent); } SW360ComponentClientAdapterAsyncImpl(SW360ComponentClient client); @Override SW360ComponentClient getComponentClient(); @Override CompletableFuture<SW360Component> createComponent(SW360Component component); @Override CompletableFuture<Optional<SW360Component>> getComponentById(String componentId); @Override CompletableFuture<Optional<SW360Component>> getComponentByName(String componentName); @Override CompletableFuture<List<SW360SparseComponent>> search(ComponentSearchParams searchParams); @Override CompletableFuture<PagingResult<SW360SparseComponent>> searchWithPaging(ComponentSearchParams searchParams); @Override CompletableFuture<SW360Component> updateComponent(SW360Component component); @Override CompletableFuture<MultiStatusResponse> deleteComponents(Collection<String> idsToDelete); @Override CompletableFuture<Void> deleteComponent(String componentId);  }
@Test public void testCreateComponent() { component.setName(COMPONENT_NAME); component.setCategories(Collections.singleton("Antenna")); when(componentClient.createComponent(component)) .thenReturn(CompletableFuture.completedFuture(component)); SW360Component createdComponent = block(componentClientAdapter.createComponent(this.component)); assertThat(createdComponent).isEqualTo(component); verify(componentClient).createComponent(component); }
@Test(expected = SW360ClientException.class) public void testCreateComponentNull() { block(componentClientAdapter.createComponent(this.component)); }
@Test public void testCreateComponentInvalid() { component.setName(""); CompletableFuture<SW360Component> futComponent = componentClientAdapter.createComponent(this.component); try { block(futComponent); fail("Invalid component not detected."); } catch (SW360ClientException e) { assertThat(e.getMessage()).contains("invalid component"); } }