diff --git a/maven-projects/info/src/main/java/org/apache/graphar/info/VersionInfo.java b/maven-projects/info/src/main/java/org/apache/graphar/info/VersionInfo.java index 3d7be11b0..6e717b8a5 100644 --- a/maven-projects/info/src/main/java/org/apache/graphar/info/VersionInfo.java +++ b/maven-projects/info/src/main/java/org/apache/graphar/info/VersionInfo.java @@ -67,13 +67,13 @@ public String toString() { /** Check if type is supported by version. */ public boolean checkType(final String typeStr) { - if (version2types == null || !version2types.containsKey(version)) { - return false; - } + // Check built-in types first if version is supported List types = version2types.get(version); - if (types.contains(typeStr)) { + if (types != null && types.contains(typeStr)) { return true; } - return userDefinedTypes != null && userDefinedTypes.contains(typeStr); + + // Check user-defined types + return userDefinedTypes.contains(typeStr); } } diff --git a/maven-projects/info/src/test/java/org/apache/graphar/info/EdgeInfoTest.java b/maven-projects/info/src/test/java/org/apache/graphar/info/EdgeInfoTest.java index 7ba683bfd..da64cf017 100644 --- a/maven-projects/info/src/test/java/org/apache/graphar/info/EdgeInfoTest.java +++ b/maven-projects/info/src/test/java/org/apache/graphar/info/EdgeInfoTest.java @@ -28,17 +28,17 @@ import org.junit.Test; public class EdgeInfoTest { - - private final EdgeInfo.EdgeInfoBuilder e = - EdgeInfo.builder() - .srcType("person") - .edgeType("knows") - .chunkSize(1024) - .srcChunkSize(100) - .dstChunkSize(100) - .directed(false) - .baseUri(URI.create("edge/person_knows_person/")) - .version("gar/v1"); + private EdgeInfo.EdgeInfoBuilder createBaseEdgeInfoBuilder() { + return EdgeInfo.builder() + .srcType("person") + .edgeType("knows") + .chunkSize(1024) + .srcChunkSize(100) + .dstChunkSize(100) + .directed(false) + .baseUri(URI.create("edge/person_knows_person/")) + .version("gar/v1"); + } @Test public void testBuildWithPrefix() { @@ -108,40 +108,43 @@ public void testMissingUriAndPrefix() { @Test public void erroneousTripletEdgeBuilderTest() { - try { - e.adjacentLists(List.of(TestUtil.orderedBySource, TestUtil.orderedByDest)) - .addPropertyGroups(List.of(TestUtil.pg3)) - .build(); - } catch (IllegalArgumentException e) { - Assert.assertEquals("Edge triplet is null", e.getMessage()); - } + EdgeInfo.EdgeInfoBuilder edgeInfoBuilder = + createBaseEdgeInfoBuilder() + .adjacentLists(List.of(TestUtil.orderedBySource, TestUtil.orderedByDest)) + .addPropertyGroups(List.of(TestUtil.pg3)); + IllegalArgumentException illegalArgumentException = + Assert.assertThrows(IllegalArgumentException.class, edgeInfoBuilder::build); + Assert.assertEquals("Edge triplet is null", illegalArgumentException.getMessage()); } @Test public void emptyAdjacentListEdgeBuilderTest() { - try { - e.dstType("person").addPropertyGroups(List.of(TestUtil.pg3)).build(); - } catch (IllegalArgumentException e) { - Assert.assertEquals("AdjacentLists is empty", e.getMessage()); - } + EdgeInfo.EdgeInfoBuilder edgeInfoBuilder = + createBaseEdgeInfoBuilder() + .dstType("person") + .addPropertyGroups(List.of(TestUtil.pg3)); + IllegalArgumentException illegalArgumentException = + Assert.assertThrows(IllegalArgumentException.class, edgeInfoBuilder::build); + Assert.assertEquals("AdjacentLists is empty", illegalArgumentException.getMessage()); } @Test public void emptyPropertyGroupsEdgeBuilderTest() { - try { - e.adjacentLists(List.of(TestUtil.orderedBySource, TestUtil.orderedByDest)) - .dstType("person") - .build(); - } catch (IllegalArgumentException e) { - Assert.assertEquals("PropertyGroups is empty", e.getMessage()); - } + EdgeInfo.EdgeInfoBuilder edgeInfoBuilder = + createBaseEdgeInfoBuilder() + .dstType("person") + .adjacentLists(List.of(TestUtil.orderedBySource, TestUtil.orderedByDest)); + IllegalArgumentException illegalArgumentException = + Assert.assertThrows(IllegalArgumentException.class, edgeInfoBuilder::build); + Assert.assertEquals("PropertyGroups is empty", illegalArgumentException.getMessage()); } @Test public void addMethodsTest() { EdgeInfo edgeInfo = - e.addPropertyGroup(TestUtil.pg3) + createBaseEdgeInfoBuilder() + .addPropertyGroup(TestUtil.pg3) .addAdjacentList(TestUtil.orderedBySource) .addAdjacentList(TestUtil.orderedByDest) .dstType("person") @@ -154,7 +157,8 @@ public void addMethodsTest() { @Test public void appendMethodsTest() { EdgeInfo edgeInfo = - e.propertyGroups(new PropertyGroups(List.of(TestUtil.pg3))) + createBaseEdgeInfoBuilder() + .propertyGroups(new PropertyGroups(List.of(TestUtil.pg3))) .adjacentLists(List.of(TestUtil.orderedBySource)) .addAdjacentList(TestUtil.orderedByDest) .addPropertyGroups(List.of(TestUtil.pg2)) diff --git a/maven-projects/info/src/test/java/org/apache/graphar/info/PropertyGroupTest.java b/maven-projects/info/src/test/java/org/apache/graphar/info/PropertyGroupTest.java index eaa0cc331..48346577a 100644 --- a/maven-projects/info/src/test/java/org/apache/graphar/info/PropertyGroupTest.java +++ b/maven-projects/info/src/test/java/org/apache/graphar/info/PropertyGroupTest.java @@ -227,23 +227,24 @@ public void testPropertyGroupImmutability() { Assert.assertEquals(1, pg.getPropertyList().size()); // Try to modify returned lists - should throw exception or be unmodifiable - try { - pg.getPropertyList() - .add(TestDataFactory.createProperty("another", DataType.BOOL, false, false)); - Assert.fail("Should not be able to modify property list"); - } catch (UnsupportedOperationException expected) { - // This is expected behavior - } - - try { - pg.getPropertyMap() - .put( - "test2", - TestDataFactory.createProperty("test2", DataType.FLOAT, false, false)); - Assert.fail("Should not be able to modify property map"); - } catch (UnsupportedOperationException expected) { - // This is expected behavior - } + UnsupportedOperationException unsupportedOperationException1 = + Assert.assertThrows( + UnsupportedOperationException.class, + () -> + pg.getPropertyList() + .add( + TestDataFactory.createProperty( + "another", DataType.BOOL, false, false))); + + UnsupportedOperationException unsupportedOperationException2 = + Assert.assertThrows( + UnsupportedOperationException.class, + () -> + pg.getPropertyMap() + .put( + "test2", + TestDataFactory.createProperty( + "test2", DataType.FLOAT, false, false))); } @Test diff --git a/maven-projects/info/src/test/java/org/apache/graphar/info/VersionInfoTest.java b/maven-projects/info/src/test/java/org/apache/graphar/info/VersionInfoTest.java index fe3d22df7..1766fa430 100644 --- a/maven-projects/info/src/test/java/org/apache/graphar/info/VersionInfoTest.java +++ b/maven-projects/info/src/test/java/org/apache/graphar/info/VersionInfoTest.java @@ -114,12 +114,9 @@ public void testVersionInfoCheckTypeWithNullType() { VersionInfo versionInfo = new VersionInfo(1, null); // The current implementation doesn't handle null gracefully, so this will throw NPE - try { - versionInfo.checkType(null); - Assert.fail("Expected NullPointerException"); - } catch (NullPointerException expected) { - // This is the current behavior - null parameter causes NPE - } + NullPointerException nullPointerException = + Assert.assertThrows(NullPointerException.class, () -> versionInfo.checkType(null)); + // This is the current behavior - null parameter causes NPE } @Test @@ -127,13 +124,10 @@ public void testVersionInfoCheckTypeWithUnsupportedVersionButUserTypes() { List userTypes = Arrays.asList("customType"); VersionInfo versionInfo = new VersionInfo(999, userTypes); - // Unsupported version should not support built-in types Assert.assertFalse(versionInfo.checkType("int32")); Assert.assertFalse(versionInfo.checkType("string")); - // Current implementation: unsupported version returns false for all types, - // including user-defined types, due to early return in checkType() - Assert.assertFalse(versionInfo.checkType("customType")); + Assert.assertTrue(versionInfo.checkType("customType")); } @Test @@ -168,26 +162,25 @@ public void testVersionInfoToStringWithSpecialCharactersInTypes() { @Test public void testVersionInfoWithZeroVersion() { - try { - new VersionInfo(0, null); - Assert.fail("Expected IllegalArgumentException for zero version"); - } catch (IllegalArgumentException e) { - Assert.assertTrue( - "Error message should mention version", - e.getMessage().contains("Version must be a supported positive integer")); - } + IllegalArgumentException illegalArgumentException = + Assert.assertThrows(IllegalArgumentException.class, () -> new VersionInfo(0, null)); + Assert.assertTrue( + "Error message should mention version", + illegalArgumentException + .getMessage() + .contains("Version must be a supported positive integer")); } @Test public void testVersionInfoWithNegativeVersion() { - try { - new VersionInfo(-1, null); - Assert.fail("Expected IllegalArgumentException for negative version"); - } catch (IllegalArgumentException e) { - Assert.assertTrue( - "Error message should mention version", - e.getMessage().contains("Version must be a supported positive integer")); - } + IllegalArgumentException illegalArgumentException = + Assert.assertThrows( + IllegalArgumentException.class, () -> new VersionInfo(-1, null)); + Assert.assertTrue( + "Error message should mention version", + illegalArgumentException + .getMessage() + .contains("Version must be a supported positive integer")); } @Test diff --git a/maven-projects/info/src/test/java/org/apache/graphar/info/VertexInfoTest.java b/maven-projects/info/src/test/java/org/apache/graphar/info/VertexInfoTest.java index 4623c738c..b46244152 100644 --- a/maven-projects/info/src/test/java/org/apache/graphar/info/VertexInfoTest.java +++ b/maven-projects/info/src/test/java/org/apache/graphar/info/VertexInfoTest.java @@ -92,14 +92,10 @@ public void invalidChunkSizeTest() { @Test public void testBuildWithPrefix() { - try { - VertexInfo vertexInfo = - new VertexInfo( - "person", 100, Arrays.asList(TestUtil.pg1), "vertex/person/", "gar/v1"); - Assert.assertEquals(URI.create("vertex/person/"), vertexInfo.getBaseUri()); - } catch (Exception e) { - Assert.fail("Should not throw exception: " + e.getMessage()); - } + VertexInfo vertexInfo = + new VertexInfo( + "person", 100, Arrays.asList(TestUtil.pg1), "vertex/person/", "gar/v1"); + Assert.assertEquals(URI.create("vertex/person/"), vertexInfo.getBaseUri()); } @Test