Commit 7a79af22 authored by Kostis Trantzas's avatar Kostis Trantzas
Browse files

Merge branch '86-review-the-relatedparty-property-in-service-order' into 'develop'

Resolve "Review the relatedParty property in Service Order"

See merge request !85
parents e7a73ad9 6ba1a507
Loading
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -113,7 +113,7 @@ public class ServiceOrderApiController implements ServiceOrderApi {
						serviceOrder.setRelatedParty(AddUserAsOwnerToRelatedParties.addUser(
								principal.getName(), 
								//user.getId()+"", 
								principal.getName(), 
								null, 
								UserPartRoleType.REQUESTER,
								extInfo,
								serviceOrder.getRelatedParty()));
@@ -122,7 +122,7 @@ public class ServiceOrderApiController implements ServiceOrderApi {
						serviceOrder.setRelatedParty(AddUserAsOwnerToRelatedParties.addUser(
								principal.getName(), 
								//user.getId()+"", 
								principal.getName(), 
								null, 
								UserPartRoleType.REQUESTER,
								extInfo,
								serviceOrder.getRelatedParty()));
+37 −3
Original line number Diff line number Diff line
@@ -39,6 +39,8 @@ import org.etsi.osl.tmf.common.model.Any;
import org.etsi.osl.tmf.common.model.EValueType;
import org.etsi.osl.tmf.common.model.UserPartRoleType;
import org.etsi.osl.tmf.common.model.service.*;
import org.etsi.osl.tmf.pm632.model.Individual;
import org.etsi.osl.tmf.pm632.reposervices.IndividualRepoService;
import org.etsi.osl.tmf.prm669.model.RelatedParty;
import org.etsi.osl.tmf.scm633.model.ServiceSpecCharacteristic;
import org.etsi.osl.tmf.scm633.model.ServiceSpecCharacteristicValue;
@@ -86,6 +88,11 @@ public class ServiceOrderRepoService {
	@Autowired
	ServiceRepoService serviceRepoService;


    @Autowired
    IndividualRepoService individualRepoService;

    
	private SessionFactory  sessionFactory;


@@ -350,8 +357,26 @@ public class ServiceOrderRepoService {
		}

		if (serviceOrderCreate.getRelatedParty() != null) {
			so.getRelatedParty().addAll(serviceOrderCreate.getRelatedParty());

		  for (RelatedParty rp : serviceOrderCreate.getRelatedParty()) {

		    if ( rp.getId() == null ) {
		      Individual ind = individualRepoService.findByUsername(  rp.getName() );
		      if ( ind != null ) {
		        rp.setId(ind.getId());
		      }
		      else {
		        rp.setId( rp.getName());
		      }
		    }	          

	          so.getRelatedParty().add(rp);
          }
          
			
		}
		
		
		if (serviceOrderCreate.getOrderRelationship() != null) {
			so.getOrderRelationship().addAll(serviceOrderCreate.getOrderRelationship());

@@ -620,7 +645,16 @@ public class ServiceOrderRepoService {

		if (serviceOrderUpd.getRelatedParty() != null) {
			for (RelatedParty n : serviceOrderUpd.getRelatedParty()) {
				if (n.getUuid() == null) {
								
				var partyFound = false;
				for (RelatedParty rp : so.getRelatedParty()) {
				  if (rp.getId().equals(n.getId())) {
				    partyFound = true;
				  }
                }
				
				if (!partyFound) {
	                n.setRole("MODIFIER");
	                so.addRelatedPartyItem(n);				  
				}
			}
+78 −1
Original line number Diff line number Diff line
package org.etsi.osl.services.api.so641;

import static org.assertj.core.api.Assertions.assertThat;
import static org.hamcrest.CoreMatchers.is;
import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.Set;
@@ -16,6 +19,12 @@ import org.apache.commons.io.IOUtils;
import org.etsi.osl.services.api.BaseIT;
import org.etsi.osl.tmf.JsonUtils;
import org.etsi.osl.tmf.common.model.service.ServiceSpecificationRef;
import org.etsi.osl.tmf.pm632.model.ContactMedium;
import org.etsi.osl.tmf.pm632.model.Individual;
import org.etsi.osl.tmf.pm632.model.IndividualCreate;
import org.etsi.osl.tmf.pm632.model.MediumCharacteristic;
import org.etsi.osl.tmf.pm632.reposervices.IndividualRepoService;
import org.etsi.osl.tmf.prm669.model.RelatedParty;
import org.etsi.osl.tmf.scm633.model.ServiceSpecification;
import org.etsi.osl.tmf.scm633.model.ServiceSpecificationCreate;
import org.etsi.osl.tmf.so641.model.ServiceOrder;
@@ -59,6 +68,10 @@ public class ServiceOrderApiControllerTest extends BaseIT {
    @Autowired
    private ObjectMapper objectMapper;
    

    @Autowired
    IndividualRepoService individualRepoService;

    @BeforeAll
    public void setup(WebApplicationContext context) throws Exception {
        mvc = MockMvcBuilders
@@ -79,10 +92,34 @@ public class ServiceOrderApiControllerTest extends BaseIT {
    @Test
    public void testCreateServiceOrder() throws Exception {
      
        String response = createServiceOrder();

      assertThat( individualRepoService.findAll().size() ).isEqualTo( 0 );
      
      
      String response = mvc.perform(MockMvcRequestBuilders.get("/party/v4/individual/myuser")
          .with( SecurityMockMvcRequestPostProcessors.csrf())
          .contentType(MediaType.APPLICATION_JSON))             
          .andExpect(status().isOk())
          .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))      
          .andExpect(status().isOk())
          .andReturn().getResponse().getContentAsString();
  

        assertThat( individualRepoService.findAll().size() ).isEqualTo( 1 );
  

        Individual responseIndv = JsonUtils.toJsonObj(response,  Individual.class);

        assertThat( responseIndv.getId() ).isNotNull() ;
  
        response = createServiceOrder();

        ServiceOrder responsesServiceOrder = JsonUtils.toJsonObj(response,  ServiceOrder.class);
        assertThat( responsesServiceOrder.getDescription() ).isEqualTo( "A Test Service Order" );
        assertThat( responsesServiceOrder.getRelatedParty().size() ) .isEqualTo( 1 );
        assertThat( responsesServiceOrder.getRelatedParty().stream().findFirst().get().getName() ) .isEqualTo( "osadmin" );
        assertThat( responsesServiceOrder.getRelatedParty().stream().findFirst().get().getId() ) .isEqualTo( responseIndv.getId() );
        assertThat( responsesServiceOrder.getRelatedParty().stream().findFirst().get().getRole() ) .isEqualTo( "REQUESTER" );
    }


@@ -156,9 +193,49 @@ public class ServiceOrderApiControllerTest extends BaseIT {
        assertThat(responsesServiceOrder2.getState().toString()).isEqualTo("COMPLETED");
        assertThat(responsesServiceOrder2.getDescription()).isEqualTo("New Test Description");
        assertThat(responsesServiceOrder2.getCategory()).isEqualTo("New Test Category");
        assertThat( responsesServiceOrder.getRelatedParty().size() ) .isEqualTo( 1 );
        assertThat( responsesServiceOrder.getRelatedParty().stream().findFirst().get().getName() ) .isEqualTo( "osadmin" );
        assertThat( responsesServiceOrder.getRelatedParty().stream().findFirst().get().getId() ) .isEqualTo( individualRepoService.findByUsername("osadmin").getId() );
        assertThat( responsesServiceOrder.getRelatedParty().stream().findFirst().get().getRole() ) .isEqualTo( "REQUESTER" );
    }
    
    

    @WithMockUser(username="osadminmodifier", roles = {"ADMIN","USER"})
    @Test
    public void testPatchServiceOrderModifier() throws Exception {

        String response = createServiceOrder();
        ServiceOrder responsesServiceOrder = JsonUtils.toJsonObj(response,  ServiceOrder.class);
        String soId = responsesServiceOrder.getId();

        ServiceOrderUpdate servOrderUpd = new ServiceOrderUpdate();
        servOrderUpd.setState(ServiceOrderStateType.COMPLETED);
        servOrderUpd.setCategory("New Test Category1");
        servOrderUpd.setDescription("New Test Description1");
        List<RelatedParty> rpl = new ArrayList<>();
        RelatedParty rp = new RelatedParty();
        rp.setId("12345");
        rpl.add( rp);
        servOrderUpd.setRelatedParty(rpl);

        String response2 = mvc.perform(MockMvcRequestBuilders.patch("/serviceOrdering/v4/serviceOrder/" + soId)
                        .with( SecurityMockMvcRequestPostProcessors.csrf())
                        .contentType(MediaType.APPLICATION_JSON)
                        .content( JsonUtils.toJson( servOrderUpd ) ))
                .andExpect(status().isOk() )
                .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
                .andReturn().getResponse().getContentAsString();

        ServiceOrder responsesServiceOrder2 = JsonUtils.toJsonObj(response2,  ServiceOrder.class);
        assertThat(responsesServiceOrder2.getState().toString()).isEqualTo("COMPLETED");
        assertThat(responsesServiceOrder2.getDescription()).isEqualTo("New Test Description1");
        assertThat(responsesServiceOrder2.getCategory()).isEqualTo("New Test Category1");
        assertThat( responsesServiceOrder2.getRelatedParty().size() ) .isEqualTo( 2 );
    }



    @WithMockUser(username="osadmin", roles = {"ADMIN","USER"})
    @Test
    public void testRetrieveServiceOrder() throws Exception {