@@ -42,6 +42,65 @@ class AccessRequestTest {
4242
4343 private static final JsonService jsonService = ServiceProvider .getJsonService ();
4444
45+ @ Test
46+ void testBuilderWithNulls () {
47+ final URI uri1 = URI .create ("https://example.com/resource1" );
48+ final URI uri2 = URI .create ("https://example.com/resource2" );
49+ final URI uri3 = URI .create ("https://example.com/resource3" );
50+ final URI uri4 = URI .create ("https://example.com/resource4" );
51+ final AccessRequest .RequestParameters params = AccessRequest .RequestParameters .newBuilder ()
52+ .resource (uri1 ).resource (uri2 )
53+ .mode ("Read" ).mode ("Append" )
54+ .purpose (uri3 ).purpose (uri4 )
55+ .recipient (null )
56+ .modes (null )
57+ .resources (null )
58+ .purposes (null ).build ();
59+
60+ assertTrue (params .getPurposes ().isEmpty ());
61+ assertTrue (params .getResources ().isEmpty ());
62+ assertTrue (params .getModes ().isEmpty ());
63+ assertNull (params .getRecipient ());
64+ assertNull (params .getExpiration ());
65+ assertNull (params .getIssuedAt ());
66+ }
67+
68+ @ Test
69+ void testBuilderWithCollections () {
70+ final URI uri1 = URI .create ("https://example.com/resource1" );
71+ final URI uri2 = URI .create ("https://example.com/resource2" );
72+ final URI uri3 = URI .create ("https://example.com/resource3" );
73+ final URI uri4 = URI .create ("https://example.com/resource4" );
74+ final AccessRequest .RequestParameters params = AccessRequest .RequestParameters .newBuilder ()
75+ .resource (uri1 )
76+ .mode ("Read" )
77+ .purpose (uri3 )
78+ .recipient (uri2 )
79+ .modes (Collections .singleton ("Append" ))
80+ .resources (Collections .singleton (uri2 ))
81+ .purposes (Collections .singleton (uri4 )).build ();
82+
83+ final Set <URI > expectedPurposes = new HashSet <>();
84+ expectedPurposes .add (uri3 );
85+ expectedPurposes .add (uri4 );
86+ assertEquals (expectedPurposes , params .getPurposes ());
87+
88+ final Set <URI > expectedResources = new HashSet <>();
89+ expectedResources .add (uri1 );
90+ expectedResources .add (uri2 );
91+ assertEquals (expectedResources , params .getResources ());
92+
93+ final Set <String > expectedModes = new HashSet <>();
94+ expectedModes .add ("Read" );
95+ expectedModes .add ("Append" );
96+ assertEquals (expectedModes , params .getModes ());
97+
98+ assertEquals (uri2 , params .getRecipient ());
99+ assertNull (params .getExpiration ());
100+ assertNull (params .getIssuedAt ());
101+ }
102+
103+
45104 @ Test
46105 void testReadAccessRequest () throws IOException {
47106 try (final InputStream resource = AccessRequestTest .class .getResourceAsStream ("/access_request1.json" )) {
0 commit comments