From 78b940b3cbd5b605ef27d48d3ea348335eded6dd Mon Sep 17 00:00:00 2001 From: Thomas Richner Date: Sun, 16 Jun 2024 17:03:09 +0200 Subject: [PATCH] ARC-1807: Better Test Coverage --- .../internal/PreconditionMapperTest.java | 93 +++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 spicedb-binding/src/test/java/com/oviva/spicegen/spicedbbinding/internal/PreconditionMapperTest.java diff --git a/spicedb-binding/src/test/java/com/oviva/spicegen/spicedbbinding/internal/PreconditionMapperTest.java b/spicedb-binding/src/test/java/com/oviva/spicegen/spicedbbinding/internal/PreconditionMapperTest.java new file mode 100644 index 0000000..cb7c4ad --- /dev/null +++ b/spicedb-binding/src/test/java/com/oviva/spicegen/spicedbbinding/internal/PreconditionMapperTest.java @@ -0,0 +1,93 @@ +package com.oviva.spicegen.spicedbbinding.internal; + +import static org.junit.jupiter.api.Assertions.*; + +import com.oviva.spicegen.api.Precondition; +import com.oviva.spicegen.api.RelationshipFilter; +import org.junit.jupiter.api.Test; + +class PreconditionMapperTest { + + @Test + void map_objectExists() { + + var sut = new PreconditionMapper(); + + var relation = "user"; + var userId = "17"; + + var precondition = + Precondition.mustMatch( + RelationshipFilter.newBuilder().resourceKind(relation).resourceId(userId).build()); + + // when + var mapped = sut.map(precondition); + + // then + assertEquals(relation, mapped.getFilter().getResourceType()); + assertEquals(userId, mapped.getFilter().getOptionalResourceId()); + assertEquals( + com.authzed.api.v1.Precondition.Operation.OPERATION_MUST_MATCH, mapped.getOperation()); + } + + @Test + void map_objectNotExists() { + + var sut = new PreconditionMapper(); + + var relation = "user"; + var userId = "77"; + + var precondition = + Precondition.mustNotMatch( + RelationshipFilter.newBuilder().resourceKind(relation).resourceId(userId).build()); + + // when + var mapped = sut.map(precondition); + + // then + assertEquals(relation, mapped.getFilter().getResourceType()); + assertEquals(userId, mapped.getFilter().getOptionalResourceId()); + assertEquals( + com.authzed.api.v1.Precondition.Operation.OPERATION_MUST_NOT_MATCH, mapped.getOperation()); + } + + @Test + void map_subject() { + + var sut = new PreconditionMapper(); + + var relation = "file"; + var fileId = "17"; + + var subject = "user"; + var userId = "42"; + + var precondition = + Precondition.mustMatch( + RelationshipFilter.newBuilder() + .resourceKind(relation) + .resourceId(fileId) + .subjectFilter( + RelationshipFilter.SubjectFilter.newBuilder() + .subjectKind(subject) + .subjectId(userId) + .build()) + .build()); + + // when + var mapped = sut.map(precondition); + + // then + assertEquals( + com.authzed.api.v1.Precondition.Operation.OPERATION_MUST_MATCH, mapped.getOperation()); + + var filter = mapped.getFilter(); + assertEquals(relation, filter.getResourceType()); + assertEquals(fileId, filter.getOptionalResourceId()); + + var subFilter = filter.getOptionalSubjectFilter(); + assertEquals(subject, subFilter.getSubjectType()); + assertEquals(userId, subFilter.getOptionalSubjectId()); + } +}