use of org.assertj.core.api.InstanceOfAssertFactories.MAP in project quick by bakdata.
the class MirrorResourceLoaderTest method shouldCreateMirrorDeployment.
@Test
void shouldCreateMirrorDeployment() {
final ImageConfig imageConfig = ImageConfig.of(DOCKER_REGISTRY, EXPECTED_MIRROR_IMAGE, 3, DEFAULT_IMAGE_TAG);
final MirrorCreationData mirrorCreationData = new MirrorCreationData(DEFAULT_NAME, DEFAULT_TOPIC_NAME, 3, null, Duration.of(1, ChronoUnit.MINUTES));
final MirrorResources mirrorResources = this.loader.forCreation(mirrorCreationData, ResourcePrefix.MIRROR);
final Optional<HasMetadata> hasMetadata = findResource(mirrorResources, ResourceKind.DEPLOYMENT);
final Map<String, String> labels = Map.of("app.kubernetes.io/name", DEFAULT_DEPLOYMENT_NAME, "app.kubernetes.io/managed-by", "quick", "app.kubernetes.io/component", "mirror");
final Map<String, String> selectors = Map.of("app.kubernetes.io/name", DEFAULT_DEPLOYMENT_NAME, "app.kubernetes.io/component", "mirror");
final Map<String, String> annotations = Map.of("d9p.io/fixed-tag", "false");
assertThat(hasMetadata).isPresent().get(InstanceOfAssertFactories.type(Deployment.class)).satisfies(deployment -> {
assertThat(deployment.getMetadata()).satisfies(metadata -> {
assertThat(metadata.getName()).isEqualTo(DEFAULT_DEPLOYMENT_NAME);
assertThat(metadata.getLabels()).containsExactlyInAnyOrderEntriesOf(labels);
assertThat(metadata.getAnnotations()).containsExactlyInAnyOrderEntriesOf(annotations);
});
assertThat(deployment.getSpec()).satisfies(spec -> {
assertThat(spec.getReplicas()).isEqualTo(3);
assertThat(spec.getSelector().getMatchLabels()).containsExactlyInAnyOrderEntriesOf(selectors);
assertThat(spec.getTemplate().getMetadata().getLabels()).containsExactlyInAnyOrderEntriesOf(labels);
});
final DeploymentSpec deploymentSpec = deployment.getSpec();
assertThat(deploymentSpec).hasFieldOrPropertyWithValue("replicas", 3).extracting(spec -> spec.getTemplate().getMetadata().getLabels(), MAP).containsExactlyInAnyOrderEntriesOf(labels);
final PodSpec podSpec = deploymentSpec.getTemplate().getSpec();
assertThat(podSpec.getContainers()).isNotNull().hasSize(1).first().hasFieldOrPropertyWithValue("image", imageConfig.asImageString()).hasFieldOrPropertyWithValue("imagePullPolicy", "Always").hasFieldOrPropertyWithValue("name", DEFAULT_DEPLOYMENT_NAME).satisfies(container -> {
assertThat(container.getPorts()).isNotNull().hasSize(1).first().hasFieldOrPropertyWithValue("containerPort", KubernetesResources.CONTAINER_PORT);
assertThat(container.getArgs()).contains(String.format("--input-topics=%s", DEFAULT_TOPIC_NAME), "--retention-time=PT1M");
assertThat(container.getEnv()).isNotNull().hasSize(2).first().hasFieldOrPropertyWithValue("name", "POD_IP").extracting(EnvVar::getValueFrom).isNotNull().extracting(EnvVarSource::getFieldRef).hasFieldOrPropertyWithValue("fieldPath", "status.podIP");
assertThat(container.getEnvFrom()).isNotNull().hasSize(1).first().extracting(EnvFromSource::getConfigMapRef).isNotNull().hasFieldOrPropertyWithValue("name", KubernetesResources.QUICK_CONFIG_NAME);
});
});
}
use of org.assertj.core.api.InstanceOfAssertFactories.MAP in project quick by bakdata.
the class ApplicationResourceLoaderTest method shouldCreateAppDeploymentWithReplica.
@Test
void shouldCreateAppDeploymentWithReplica() {
final ApplicationResources applicationResources = this.createApplicationResource(3, null, null, Map.of());
final Optional<HasMetadata> hasMetadata = findResource(applicationResources, ResourceKind.DEPLOYMENT);
assertThat(hasMetadata).isPresent().get(InstanceOfAssertFactories.type(Deployment.class)).satisfies(deployment -> {
final DeploymentSpec deploymentSpec = deployment.getSpec();
assertThat(deploymentSpec).hasFieldOrPropertyWithValue("replicas", 3).extracting(spec -> spec.getTemplate().getMetadata().getLabels(), MAP).contains(Map.entry("app.kubernetes.io/name", DEFAULT_DEPLOYMENT_NAME));
});
}
use of org.assertj.core.api.InstanceOfAssertFactories.MAP in project hedera-mirror-node by hashgraph.
the class CryptoTransferTransactionSupplierTest method createWithCustomAllTransfer.
@Test
void createWithCustomAllTransfer() {
TokenId nftTokenId = TokenId.fromString("0.0.21");
Hbar transferAmount = Hbar.fromTinybars(2);
CryptoTransferTransactionSupplier cryptoTransferTransactionSupplier = new CryptoTransferTransactionSupplier();
cryptoTransferTransactionSupplier.setAmount(2);
cryptoTransferTransactionSupplier.setMaxTransactionFee(1);
cryptoTransferTransactionSupplier.setNftTokenId(nftTokenId.toString());
cryptoTransferTransactionSupplier.setRecipientAccountId(ACCOUNT_ID_2.toString());
cryptoTransferTransactionSupplier.setSenderAccountId(ACCOUNT_ID.toString());
cryptoTransferTransactionSupplier.setSerialNumber(new AtomicLong(10));
cryptoTransferTransactionSupplier.setTokenId(TOKEN_ID.toString());
cryptoTransferTransactionSupplier.setTransferTypes(Set.of(CRYPTO, NFT, TOKEN));
TransferTransaction actual = cryptoTransferTransactionSupplier.get();
assertThat(actual).returns(ONE_TINYBAR, TransferTransaction::getMaxTransactionFee).satisfies(a -> assertThat(a.getHbarTransfers()).containsEntry(ACCOUNT_ID, transferAmount.negated()).containsEntry(ACCOUNT_ID_2, transferAmount)).satisfies(a -> assertThat(a).extracting(TransferTransaction::getTokenNftTransfers, MAP).hasSize(1).extractingByKey(nftTokenId, LIST).extracting("serial", "sender", "receiver").containsExactlyInAnyOrder(tuple(10L, ACCOUNT_ID, ACCOUNT_ID_2), tuple(11L, ACCOUNT_ID, ACCOUNT_ID_2))).extracting(TransferTransaction::getHbarTransfers, MAP).hasSize(2).containsEntry(ACCOUNT_ID, transferAmount.negated()).containsEntry(ACCOUNT_ID_2, transferAmount);
}
use of org.assertj.core.api.InstanceOfAssertFactories.MAP in project quick by bakdata.
the class ApplicationResourceLoaderTest method shouldCreateDeploymentForAppDefaults.
@Test
void shouldCreateDeploymentForAppDefaults() {
final ImageConfig imageConfig = ImageConfig.of(DOCKER_REGISTRY, "test", 3, "snapshot");
final ApplicationResources applicationResources = this.createApplicationResource(null, null, null, Map.of());
final Optional<HasMetadata> hasMetadata = findResource(applicationResources, ResourceKind.DEPLOYMENT);
final Map<String, String> labels = Map.of("app.kubernetes.io/name", DEFAULT_DEPLOYMENT_NAME, "app.kubernetes.io/component", "streamsApp");
assertThat(hasMetadata).isPresent().get(InstanceOfAssertFactories.type(Deployment.class)).satisfies(deployment -> {
assertThat(deployment.getMetadata()).hasFieldOrPropertyWithValue("name", DEFAULT_DEPLOYMENT_NAME);
final DeploymentSpec deploymentSpec = deployment.getSpec();
assertThat(deploymentSpec).hasFieldOrPropertyWithValue("replicas", 1).extracting(spec -> spec.getTemplate().getMetadata().getLabels(), MAP).contains(Map.entry("app.kubernetes.io/name", DEFAULT_DEPLOYMENT_NAME));
assertThat(deployment.getMetadata()).satisfies(metadata -> {
assertThat(metadata.getName()).isEqualTo(DEFAULT_DEPLOYMENT_NAME);
assertThat(metadata.getLabels()).containsExactlyInAnyOrderEntriesOf(labels);
});
final PodSpec podSpec = deploymentSpec.getTemplate().getSpec();
assertThat(podSpec.getImagePullSecrets()).isNullOrEmpty();
assertThat(podSpec.getContainers()).isNotNull().hasSize(1).first().hasFieldOrPropertyWithValue("image", imageConfig.asImageString()).hasFieldOrPropertyWithValue("imagePullPolicy", "Always").hasFieldOrPropertyWithValue("name", DEFAULT_DEPLOYMENT_NAME).satisfies(container -> {
assertThat(container.getPorts()).isNullOrEmpty();
assertThat(container.getEnv()).hasSize(1).first().extracting(EnvVar::getName).isEqualTo("JAVA_TOOL_OPTIONS");
assertThat(container.getEnvFrom()).isNotNull().hasSize(1).first().extracting(EnvFromSource::getConfigMapRef).isNotNull().hasFieldOrPropertyWithValue("name", KubernetesResources.QUICK_CONFIG_NAME);
assertThat(container.getArgs()).hasSize(2).contains("--brokers=bootstrap").contains("--schema-registry-url=http://dummy:123");
});
});
}
use of org.assertj.core.api.InstanceOfAssertFactories.MAP in project quick by bakdata.
the class GatewayResourceLoaderTest method shouldCreateGatewayIngress.
@Test
void shouldCreateGatewayIngress() {
final GatewayCreationData gatewayCreationData = new GatewayCreationData(GATEWAY_NAME, REPLICAS, TAG, null);
final GatewayResources gatewayResources = this.loader.forCreation(gatewayCreationData, ResourcePrefix.GATEWAY);
final Optional<HasMetadata> hasMetadata = findResource(gatewayResources, ResourceKind.INGRESS);
final String expected = ResourcePrefix.GATEWAY.getPrefix() + GATEWAY_NAME;
assertThat(hasMetadata).isPresent().get(InstanceOfAssertFactories.type(Ingress.class)).satisfies(gatewayIngress -> {
assertThat(gatewayIngress.getMetadata()).hasFieldOrPropertyWithValue("name", expected).extracting(ObjectMeta::getAnnotations, MAP).containsExactlyInAnyOrderEntriesOf(Map.of("kubernetes.io/ingress.class", "traefik", "traefik.ingress.kubernetes.io/router.middlewares", String.format("%s-%s@kubernetescrd", "test", expected), "traefik.ingress.kubernetes.io/router.entrypoints", "websecure", "traefik.ingress.kubernetes.io/router.tls", "true"));
final IngressSpec ingressSpec = gatewayIngress.getSpec();
assertThat(ingressSpec).isNotNull();
assertThat(ingressSpec.getRules()).isNotNull().hasSize(1).first().satisfies(rule -> assertThat(rule.getHost()).isEqualTo("quick.host.io")).extracting(IngressRule::getHttp).isNotNull().extracting(HTTPIngressRuleValue::getPaths, InstanceOfAssertFactories.list(HTTPIngressPath.class)).isNotNull().hasSize(1).first().hasFieldOrPropertyWithValue("path", "/gateway/" + GATEWAY_NAME).hasFieldOrPropertyWithValue("pathType", "Prefix").extracting(path -> path.getBackend().getService()).isNotNull().hasFieldOrPropertyWithValue("name", expected).extracting(IngressServiceBackend::getPort).hasFieldOrPropertyWithValue("number", KubernetesResources.SERVICE_PORT);
});
}
Aggregations