Search in sources :

Example 6 with ServiceDescriptor

use of com.enonic.xp.service.ServiceDescriptor in project xp by enonic.

the class ServiceHandlerTest method setup.

@BeforeEach
public final void setup() throws Exception {
    this.request = new PortalRequest();
    final ControllerScriptFactory controllerScriptFactory = Mockito.mock(ControllerScriptFactory.class);
    this.controllerScript = Mockito.mock(ControllerScript.class);
    Mockito.when(controllerScriptFactory.fromDir(Mockito.any())).thenReturn(this.controllerScript);
    final PortalResponse portalResponse = PortalResponse.create().build();
    Mockito.when(this.controllerScript.execute(Mockito.any())).thenReturn(portalResponse);
    this.resourceService = Mockito.mock(ResourceService.class);
    final Resource resourceNotFound = Mockito.mock(Resource.class);
    Mockito.when(resourceNotFound.exists()).thenReturn(false);
    final Resource resource = Mockito.mock(Resource.class);
    Mockito.when(resource.exists()).thenReturn(true);
    Mockito.when(this.resourceService.getResource(ResourceKey.from("demo:/services/test"))).thenReturn(resourceNotFound);
    this.serviceDescriptorService = Mockito.mock(ServiceDescriptorService.class);
    final DescriptorKey serviceDescriptorKey = DescriptorKey.from("demo:test");
    final ServiceDescriptor serviceDescriptor = ServiceDescriptor.create().key(serviceDescriptorKey).build();
    Mockito.when(this.serviceDescriptorService.getByKey(serviceDescriptorKey)).thenReturn(serviceDescriptor);
    this.contentService = Mockito.mock(ContentService.class);
    this.handler = new ServiceHandler();
    this.handler.setControllerScriptFactory(controllerScriptFactory);
    this.handler.setContentService(this.contentService);
    this.handler.setResourceService(this.resourceService);
    this.handler.setServiceDescriptorService(this.serviceDescriptorService);
    this.request.setMethod(HttpMethod.GET);
    this.request.setContentPath(ContentPath.from("/site/somepath/content"));
    this.request.setEndpointPath("/_/service/demo/myservice");
    this.request.setRawPath("/site/draft/site/somepath/content/_/service/demo/myservice");
}
Also used : PortalResponse(com.enonic.xp.portal.PortalResponse) ControllerScript(com.enonic.xp.portal.controller.ControllerScript) ServiceDescriptor(com.enonic.xp.service.ServiceDescriptor) ResourceService(com.enonic.xp.resource.ResourceService) Resource(com.enonic.xp.resource.Resource) DescriptorKey(com.enonic.xp.page.DescriptorKey) ContentService(com.enonic.xp.content.ContentService) ControllerScriptFactory(com.enonic.xp.portal.controller.ControllerScriptFactory) PortalRequest(com.enonic.xp.portal.PortalRequest) ServiceDescriptorService(com.enonic.xp.service.ServiceDescriptorService) BeforeEach(org.junit.jupiter.api.BeforeEach)

Example 7 with ServiceDescriptor

use of com.enonic.xp.service.ServiceDescriptor in project xp by enonic.

the class ServiceHandlerTest method testForbiddenService.

@Test
public void testForbiddenService() throws Exception {
    final DescriptorKey serviceDescriptorKey = DescriptorKey.from("demo:test");
    final Set<PrincipalKey> allowedPrincipals = Collections.singleton(PrincipalKey.from("role:system.admin"));
    final ServiceDescriptor serviceDescriptor = ServiceDescriptor.create().key(serviceDescriptorKey).setAllowedPrincipals(allowedPrincipals).build();
    Mockito.when(this.serviceDescriptorService.getByKey(serviceDescriptorKey)).thenReturn(serviceDescriptor);
    this.request.setEndpointPath("/_/service/demo/test");
    boolean forbiddenErrorThrown = false;
    try {
        this.handler.handle(this.request, PortalResponse.create().build(), null);
    } catch (WebException e) {
        if (HttpStatus.UNAUTHORIZED == e.getStatus()) {
            forbiddenErrorThrown = true;
        }
    }
    assertTrue(forbiddenErrorThrown);
}
Also used : WebException(com.enonic.xp.web.WebException) ServiceDescriptor(com.enonic.xp.service.ServiceDescriptor) DescriptorKey(com.enonic.xp.page.DescriptorKey) PrincipalKey(com.enonic.xp.security.PrincipalKey) BaseHandlerTest(com.enonic.xp.web.handler.BaseHandlerTest) Test(org.junit.jupiter.api.Test)

Aggregations

ServiceDescriptor (com.enonic.xp.service.ServiceDescriptor)7 DescriptorKey (com.enonic.xp.page.DescriptorKey)6 Test (org.junit.jupiter.api.Test)3 AbstractDescriptorServiceTest (com.enonic.xp.core.impl.content.page.AbstractDescriptorServiceTest)2 PortalResponse (com.enonic.xp.portal.PortalResponse)2 ControllerScript (com.enonic.xp.portal.controller.ControllerScript)2 PrincipalKeys (com.enonic.xp.security.PrincipalKeys)2 ApplicationKey (com.enonic.xp.app.ApplicationKey)1 ContentService (com.enonic.xp.content.ContentService)1 PropertyTree (com.enonic.xp.data.PropertyTree)1 PortalRequest (com.enonic.xp.portal.PortalRequest)1 ControllerScriptFactory (com.enonic.xp.portal.controller.ControllerScriptFactory)1 ContentResolverResult (com.enonic.xp.portal.impl.ContentResolverResult)1 Resource (com.enonic.xp.resource.Resource)1 ResourceService (com.enonic.xp.resource.ResourceService)1 PrincipalKey (com.enonic.xp.security.PrincipalKey)1 ServiceDescriptorService (com.enonic.xp.service.ServiceDescriptorService)1 Site (com.enonic.xp.site.Site)1 WebException (com.enonic.xp.web.WebException)1 BaseHandlerTest (com.enonic.xp.web.handler.BaseHandlerTest)1