@@ -100,6 +100,9 @@ public void handleRequest_SimpleSuccess() {
100100
101101 final ResourceHandlerRequest <ResourceModel > request = ResourceHandlerRequest .<ResourceModel >builder ()
102102 .desiredResourceState (model )
103+ .region (REGION )
104+ .awsPartition (PARTITION )
105+ .awsAccountId (DOMAIN_OWNER )
103106 .build ();
104107
105108 final RepositoryDescription repositoryDescription = RepositoryDescription .builder ()
@@ -132,6 +135,64 @@ public void handleRequest_SimpleSuccess() {
132135 verify (codeartifactClient , atLeastOnce ()).serviceName ();
133136 }
134137
138+ @ Test
139+ public void handleRequest_SimpleSuccess_withoutDomainOwner () {
140+ final CreateHandler handler = new CreateHandler ();
141+
142+ final ResourceModel model = ResourceModel .builder ()
143+ .domainName (DOMAIN_NAME )
144+ .repositoryName (REPO_NAME )
145+ .description (DESCRIPTION )
146+ .build ();
147+
148+ final ResourceModel desiredOutputModel = ResourceModel .builder ()
149+ .domainName (DOMAIN_NAME )
150+ .domainOwner (DOMAIN_OWNER )
151+ .name (REPO_NAME )
152+ .repositoryName (REPO_NAME )
153+ .arn (REPO_ARN )
154+ .description (DESCRIPTION )
155+ .administratorAccount (ADMIN_ACCOUNT )
156+ .build ();
157+
158+ final ResourceHandlerRequest <ResourceModel > request = ResourceHandlerRequest .<ResourceModel >builder ()
159+ .desiredResourceState (model )
160+ .region (REGION )
161+ .awsPartition (PARTITION )
162+ .awsAccountId (DOMAIN_OWNER )
163+ .build ();
164+
165+ final RepositoryDescription repositoryDescription = RepositoryDescription .builder ()
166+ .name (REPO_NAME )
167+ .administratorAccount (ADMIN_ACCOUNT )
168+ .arn (REPO_ARN )
169+ .description (DESCRIPTION )
170+ .domainOwner (DOMAIN_OWNER )
171+ .domainName (DOMAIN_NAME )
172+ .build ();
173+
174+ CreateRepositoryResponse createRepositoryResponse = CreateRepositoryResponse .builder ()
175+ .repository (repositoryDescription )
176+ .build ();
177+
178+ when (proxyClient .client ().createRepository (any (CreateRepositoryRequest .class ))).thenReturn (createRepositoryResponse );
179+
180+ DescribeRepositoryResponse describeRepositoryResponse = DescribeRepositoryResponse .builder ()
181+ .repository (repositoryDescription )
182+ .build ();
183+
184+ when (proxyClient .client ().describeRepository (any (DescribeRepositoryRequest .class ))).thenReturn (describeRepositoryResponse );
185+
186+ final ProgressEvent <ResourceModel , CallbackContext > response = handler .handleRequest (proxy , request , new CallbackContext (), proxyClient , logger );
187+
188+ assertSuccess (response , desiredOutputModel );
189+
190+ verify (codeartifactClient ).createRepository (any (CreateRepositoryRequest .class ));
191+ verify (codeartifactClient , times (2 )).describeRepository (any (DescribeRepositoryRequest .class ));
192+ verify (codeartifactClient , atLeastOnce ()).serviceName ();
193+ }
194+
195+
135196 @ Test
136197 public void handleRequest_withUpstreams () {
137198 final CreateHandler handler = new CreateHandler ();
@@ -170,6 +231,9 @@ public void handleRequest_withUpstreams() {
170231
171232 final ResourceHandlerRequest <ResourceModel > request = ResourceHandlerRequest .<ResourceModel >builder ()
172233 .desiredResourceState (model )
234+ .region (REGION )
235+ .awsPartition (PARTITION )
236+ .awsAccountId (DOMAIN_OWNER )
173237 .build ();
174238
175239 CreateRepositoryResponse createRepositoryResponse = CreateRepositoryResponse .builder ()
@@ -227,6 +291,9 @@ public void handleRequest_withRepoPolicy() throws JsonProcessingException {
227291
228292 final ResourceHandlerRequest <ResourceModel > request = ResourceHandlerRequest .<ResourceModel >builder ()
229293 .desiredResourceState (model )
294+ .region (REGION )
295+ .awsPartition (PARTITION )
296+ .awsAccountId (DOMAIN_OWNER )
230297 .build ();
231298
232299 CreateRepositoryResponse createRepositoryResponse = CreateRepositoryResponse .builder ()
@@ -295,6 +362,9 @@ public void handleRequest_withExternalConnections_happycase() {
295362
296363 final ResourceHandlerRequest <ResourceModel > request = ResourceHandlerRequest .<ResourceModel >builder ()
297364 .desiredResourceState (model )
365+ .region (REGION )
366+ .awsPartition (PARTITION )
367+ .awsAccountId (DOMAIN_OWNER )
298368 .build ();
299369
300370 CreateRepositoryResponse createRepositoryResponse = CreateRepositoryResponse .builder ()
@@ -342,6 +412,9 @@ public void handleRequest_withExternalConnections_moreThanOneExternalConnection(
342412
343413 final ResourceHandlerRequest <ResourceModel > request = ResourceHandlerRequest .<ResourceModel >builder ()
344414 .desiredResourceState (model )
415+ .region (REGION )
416+ .awsPartition (PARTITION )
417+ .awsAccountId (DOMAIN_OWNER )
345418 .build ();
346419
347420 CreateRepositoryResponse createRepositoryResponse = CreateRepositoryResponse .builder ()
@@ -383,6 +456,9 @@ public void handleRequest_conflictException() {
383456
384457 final ResourceHandlerRequest <ResourceModel > request = ResourceHandlerRequest .<ResourceModel >builder ()
385458 .desiredResourceState (model )
459+ .region (REGION )
460+ .awsPartition (PARTITION )
461+ .awsAccountId (DOMAIN_OWNER )
386462 .build ();
387463
388464 assertThrows (CfnAlreadyExistsException .class , () -> handler .handleRequest (proxy , request , new CallbackContext (), proxyClient , logger ));
@@ -408,6 +484,9 @@ public void handleRequest_serviceQuotaExceededException() {
408484
409485 final ResourceHandlerRequest <ResourceModel > request = ResourceHandlerRequest .<ResourceModel >builder ()
410486 .desiredResourceState (model )
487+ .region (REGION )
488+ .awsPartition (PARTITION )
489+ .awsAccountId (DOMAIN_OWNER )
411490 .build ();
412491
413492 assertThrows (CfnServiceLimitExceededException .class , () -> handler .handleRequest (proxy , request , new CallbackContext (), proxyClient , logger ));
@@ -432,6 +511,9 @@ public void handleRequest_validationException() {
432511
433512 final ResourceHandlerRequest <ResourceModel > request = ResourceHandlerRequest .<ResourceModel >builder ()
434513 .desiredResourceState (model )
514+ .region (REGION )
515+ .awsPartition (PARTITION )
516+ .awsAccountId (DOMAIN_OWNER )
435517 .build ();
436518
437519 assertThrows (CfnInvalidRequestException .class , () -> handler .handleRequest (proxy , request , new CallbackContext (), proxyClient , logger ));
@@ -457,6 +539,9 @@ public void handleRequest_internalServerException() {
457539
458540 final ResourceHandlerRequest <ResourceModel > request = ResourceHandlerRequest .<ResourceModel >builder ()
459541 .desiredResourceState (model )
542+ .region (REGION )
543+ .awsPartition (PARTITION )
544+ .awsAccountId (DOMAIN_OWNER )
460545 .build ();
461546
462547 assertThrows (CfnServiceInternalErrorException .class , () -> handler .handleRequest (proxy , request , new CallbackContext (), proxyClient , logger ));
@@ -481,6 +566,9 @@ public void handleRequest_accessDeniedException() {
481566
482567 final ResourceHandlerRequest <ResourceModel > request = ResourceHandlerRequest .<ResourceModel >builder ()
483568 .desiredResourceState (model )
569+ .region (REGION )
570+ .awsPartition (PARTITION )
571+ .awsAccountId (DOMAIN_OWNER )
484572 .build ();
485573
486574 assertThrows (CfnAccessDeniedException .class , () -> handler .handleRequest (proxy , request , new CallbackContext (), proxyClient , logger ));
@@ -505,6 +593,9 @@ public void handleRequest_notFoundException() {
505593
506594 final ResourceHandlerRequest <ResourceModel > request = ResourceHandlerRequest .<ResourceModel >builder ()
507595 .desiredResourceState (model )
596+ .region (REGION )
597+ .awsPartition (PARTITION )
598+ .awsAccountId (DOMAIN_OWNER )
508599 .build ();
509600
510601 assertThrows (CfnNotFoundException .class , () -> handler .handleRequest (proxy , request , new CallbackContext (), proxyClient , logger ));
@@ -529,6 +620,9 @@ public void handleRequest_generalException() {
529620
530621 final ResourceHandlerRequest <ResourceModel > request = ResourceHandlerRequest .<ResourceModel >builder ()
531622 .desiredResourceState (model )
623+ .region (REGION )
624+ .awsPartition (PARTITION )
625+ .awsAccountId (DOMAIN_OWNER )
532626 .build ();
533627
534628 assertThrows (CfnGeneralServiceException .class , () -> handler .handleRequest (proxy , request , new CallbackContext (), proxyClient , logger ));
@@ -550,6 +644,9 @@ public void handleRequest_invalidRequest_readOnlyProperties() {
550644
551645 final ResourceHandlerRequest <ResourceModel > request = ResourceHandlerRequest .<ResourceModel >builder ()
552646 .desiredResourceState (model )
647+ .region (REGION )
648+ .awsPartition (PARTITION )
649+ .awsAccountId (DOMAIN_OWNER )
553650 .build ();
554651
555652 assertThrows (CfnInvalidRequestException .class , () -> handler .handleRequest (proxy , request , new CallbackContext (), proxyClient , logger ));
0 commit comments