protected Future<ReconcileResult<T>> internalPatch(String namespace, String name, T current, T desired, boolean cascading) { try { T result = operation().inNamespace(namespace).withName(name).cascading(cascading).patch(desired); log.debug("{} {} in namespace {} has been patched", resourceKind, name, namespace); return Future.succeededFuture(wasChanged(current, result) ? ReconcileResult.patched(result) : ReconcileResult.noop(result)); } catch (Exception e) { log.error("Caught exception while patching {} {} in namespace {}", resourceKind, name, namespace, e); return Future.failedFuture(e); } }
public void createWhenExistsIsAPatch(TestContext context, boolean cascade) { T resource = resource(); Resource mockResource = mock(resourceType()); when(mockResource.get()).thenReturn(resource); when(mockResource.cascading(cascade)).thenReturn(mockResource); NonNamespaceOperation mockNameable = mock(NonNamespaceOperation.class); when(mockNameable.withName(matches(resource.getMetadata().getName()))).thenReturn(mockResource); MixedOperation mockCms = mock(MixedOperation.class); when(mockCms.inNamespace(matches(resource.getMetadata().getNamespace()))).thenReturn(mockNameable); C mockClient = mock(clientType()); mocker(mockClient, mockCms); AbstractResourceOperator<C, T, L, D, R> op = createResourceOperations(vertx, mockClient); Async async = context.async(); Future<ReconcileResult<T>> fut = op.createOrUpdate(resource()); fut.setHandler(ar -> { if (!ar.succeeded()) { ar.cause().printStackTrace(); } assertTrue(ar.succeeded()); verify(mockResource).get(); verify(mockResource).patch(any()); verify(mockResource, never()).create(any()); verify(mockResource, never()).createNew(); verify(mockResource, never()).createOrReplace(any()); verify(mockCms, never()).createOrReplace(any()); async.complete(); }); }
Resource mockResource = mock(resourceType()); when(mockResource.get()).thenReturn(resource); when(mockResource.cascading(cascade)).thenReturn(mockResource);
Resource mockResource = mock(resourceType()); when(mockResource.get()).thenReturn(resource); when(mockResource.cascading(cascade)).thenReturn(mockResource);