[ 
https://issues.apache.org/jira/browse/SLING-6994?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

David Gonzalez updated SLING-6994:
----------------------------------
    Description: 
I would like to use Sling Mocks to test code that relies on sling:vanityPaths. 
Sling Mocks resolve vanity pathed resources to sling:nonexisting rather than 
sling:redirect (which is the actual behavior) which isn't allowing me to write 
tests for my code unless i change my code to match mock behavior and not be 
driven by actual behavior/contracts. 

{noformat}
@Rule
public SlingContext context = new 
SlingContextBuilder(ResourceResolverType.JCR_MOCK)
       .resourceResolverFactoryActivatorProps(ImmutableMap.<String, Object>of(
               "resource.resolver.mapping", new String[] {"/:/", 
"/content/test/</"}
       ))
       .build();

@Before
public void setUp() throws Exception {
   request = new MockSlingHttpServletRequest(context.resourceResolver(), 
context.bundleContext());
   response = new MockSlingHttpServletResponse();

   context.build().resource("/content")
           .resource("test")
           .resource("vanity", "sling:vanityPath", "/my-vanity");
}
...

@Test
public void dispatch_path1() throws Exception {
        request.setServletPath("/content/test/my-vanity");
         ... calls code that preforms ...
         
rr.resolve(rr.map("/content/test/my-vanity")).isResourceType("sling:redirect") 
         // This should return true; however in mocks the resource type is 
"sling:nonexisting"
    }
}
{noformat}

/cc [[email protected]]

  was:
I would like to use Sling Mocks to test code that relies on sling:vanityPaths. 
Sling Mocks resolve vanity pathed resources to sling:nonexisting rather than 
sling:redirect (which is the actual behavior) which isn't allowing me to write 
tests for my code unless i change my code to match mock behavior and not be 
driven by actual behavior/contracts. 

{noformat}
    @Rule
    public SlingContext context = new 
SlingContextBuilder(ResourceResolverType.JCR_MOCK)
            .resourceResolverFactoryActivatorProps(ImmutableMap.<String, 
Object>of(
                    "resource.resolver.mapping", new String[] {"/:/", 
"/content/test/</"}
            ))
            .build();


    @Before
    public void setUp() throws Exception {
        request = new MockSlingHttpServletRequest(context.resourceResolver(), 
context.bundleContext());
        response = new MockSlingHttpServletResponse();

        context.build().resource("/content")
                .resource("test")
                .resource("vanity", "sling:vanityPath", "/my-vanity");

    }
...

 @Test
    public void dispatch_path1() throws Exception {
        request.setServletPath("/content/test/my-vanity");
         ... calls code that preforms ...
         
rr.resolve(rr.map("/content/test/my-vanity")).isResourceType("sling:redirect") 
         // This should return true; however in mocks the resource type is 
"sling:nonexisting"
    }
}
{noformat}

/cc [[email protected]]


> [Mocks] Sling JCR Mocks do not resolve vanity resources properly
> ----------------------------------------------------------------
>
>                 Key: SLING-6994
>                 URL: https://issues.apache.org/jira/browse/SLING-6994
>             Project: Sling
>          Issue Type: Improvement
>          Components: Apache Sling Testing Rules
>            Reporter: David Gonzalez
>
> I would like to use Sling Mocks to test code that relies on 
> sling:vanityPaths. Sling Mocks resolve vanity pathed resources to 
> sling:nonexisting rather than sling:redirect (which is the actual behavior) 
> which isn't allowing me to write tests for my code unless i change my code to 
> match mock behavior and not be driven by actual behavior/contracts. 
> {noformat}
> @Rule
> public SlingContext context = new 
> SlingContextBuilder(ResourceResolverType.JCR_MOCK)
>        .resourceResolverFactoryActivatorProps(ImmutableMap.<String, Object>of(
>                "resource.resolver.mapping", new String[] {"/:/", 
> "/content/test/</"}
>        ))
>        .build();
> @Before
> public void setUp() throws Exception {
>    request = new MockSlingHttpServletRequest(context.resourceResolver(), 
> context.bundleContext());
>    response = new MockSlingHttpServletResponse();
>    context.build().resource("/content")
>            .resource("test")
>            .resource("vanity", "sling:vanityPath", "/my-vanity");
> }
> ...
> @Test
> public void dispatch_path1() throws Exception {
>         request.setServletPath("/content/test/my-vanity");
>          ... calls code that preforms ...
>          
> rr.resolve(rr.map("/content/test/my-vanity")).isResourceType("sling:redirect")
>  
>          // This should return true; however in mocks the resource type is 
> "sling:nonexisting"
>     }
> }
> {noformat}
> /cc [[email protected]]



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to