@Test public void validateURIWhenPropertiesAreNull() throws Exception { // GIVEN HostBasedVirtualURIMapping hostBasedMapping = new HostBasedVirtualURIMapping(); hostBasedMapping.setFromURI(null); hostBasedMapping.setToURI(null); // WHEN - THEN assertFalse(hostBasedMapping.isValid()); }
@Test public void testMapURIWithHostsWhereOneDoesMatch() { // GIVEN hostBasedMapping.addHost("host0=/path0"); hostBasedMapping.addHost("host1=/path1"); hostBasedMapping.addHost("host2=/path2"); // WHEN final VirtualURIMapping.MappingResult res = hostBasedMapping.mapURI("/products"); // THEN assertNotNull(res); assertEquals("/path1", res.getToURI()); }
@Test public void validateUriWhenToURIIsNotSetButHostMappingIsSet() throws Exception { // GIVEN HostBasedVirtualURIMapping hostBasedMapping = new HostBasedVirtualURIMapping(); hostBasedMapping.setFromURI("/products"); hostBasedMapping.addMapping(new HostURIMapping("test.com", "/somewhere")); // WHEN - THEN assertTrue(hostBasedMapping.isValid()); }
@Test public void validateURIWhenToURIIsNotSet() throws Exception { // GIVEN HostBasedVirtualURIMapping hostBasedMapping = new HostBasedVirtualURIMapping(); hostBasedMapping.setFromURI("/products"); // WHEN - THEN assertFalse(hostBasedMapping.isValid()); }
@Test public void testMappingWhereOneDoesMatch() { // GIVEN hostBasedMapping.addMapping(new HostURIMapping("host0", "/path0")); hostBasedMapping.addMapping(new HostURIMapping("host1", "/path1")); hostBasedMapping.addMapping(new HostURIMapping("host2", "/path2")); // WHEN final VirtualURIMapping.MappingResult res = hostBasedMapping.mapURI("/products"); // THEN assertNotNull(res); assertEquals("/path1", res.getToURI()); }
@Test public void validateURIWhenToURIIsNull() throws Exception { // GIVEN HostBasedVirtualURIMapping hostBasedMapping = new HostBasedVirtualURIMapping(); hostBasedMapping.setToURI(null); // WHEN - THEN assertFalse(hostBasedMapping.isValid()); }
@Test public void validateURIWhenPropertiesAreNotSet() throws Exception { // GIVEN HostBasedVirtualURIMapping hostBasedMapping = new HostBasedVirtualURIMapping(); // WHEN - THEN assertFalse(hostBasedMapping.isValid()); }
@Before public void setUp() { MockWebContext ctx = new MockWebContext(); HttpServletRequest request = mock(HttpServletRequest.class); when(request.getServerName()).thenReturn("host1"); ctx.setRequest(request); MgnlContext.setInstance(ctx); hostBasedMapping.setFromURI("/products"); hostBasedMapping.setToURI("/product/detail.html"); }
@Override public boolean isValid() { if (this.getClass().equals(HostBasedVirtualURIMapping.class)) { return StringUtils.isNotEmpty(getFromURI()) && hosts.stream() .anyMatch(HostURIMapping::isValid); } return true; }
@Override public MappingResult mapURI(String uri) { MappingResult result = super.mapURI(uri); if (result != null) { String destination = toURI; String hostMapping = this.tryToMapHost(); if (hostMapping != null) { destination = hostMapping; } result.setToURI(destination); return result; } return null; }
@Test public void testMapURIWithNoHosts() { // GIVEN // WHEN final VirtualURIMapping.MappingResult res = hostBasedMapping.mapURI("/products"); // THEN assertNotNull(res); assertEquals("/product/detail.html", res.getToURI()); }
@Test public void validateWhenFromURIIsNotSet() { // GIVEN DefaultVirtualURIMapping hostBasedMapping = new HostBasedVirtualURIMapping(); hostBasedMapping.setToURI("/somewhere"); // WHEN - THEN assertFalse(hostBasedMapping.isValid()); }
@Test public void testMappingThatDoesNotMatch() { // GIVEN hostBasedMapping.addMapping(new HostURIMapping("host2", "/path1")); // WHEN final VirtualURIMapping.MappingResult res = hostBasedMapping.mapURI("/products"); // THEN assertNotNull(res); assertEquals("/product/detail.html", res.getToURI()); }
@Test public void testMappingThatBestMatchWinsPart1() { // GIVEN setUpContextAndHost("subdomain.host.com"); hostBasedMapping.addMapping(new HostURIMapping("host.com", "/path-com")); hostBasedMapping.addMapping(new HostURIMapping("subdomain.host.com", "/path-com-subdomain")); // WHEN final VirtualURIMapping.MappingResult res = hostBasedMapping.mapURI("/products"); // THEN assertNotNull(res); assertEquals("/path-com-subdomain", res.getToURI()); }
@Test public void testMappingThatBestMatchWinsPart2() { // GIVEN setUpContextAndHost("subdomain.host.com"); hostBasedMapping.addMapping(new HostURIMapping("subdomain.host.com", "/path-com-subdomain")); hostBasedMapping.addMapping(new HostURIMapping("host.com", "/path-com")); // WHEN final VirtualURIMapping.MappingResult res = hostBasedMapping.mapURI("/products"); // THEN assertNotNull(res); assertEquals("/path-com-subdomain", res.getToURI()); }
@Test public void testMappingThatDoesMatch() { // GIVEN hostBasedMapping.addMapping(new HostURIMapping("host1", "/path1")); // WHEN final VirtualURIMapping.MappingResult res = hostBasedMapping.mapURI("/products"); // THEN assertNotNull(res); assertEquals("/path1", res.getToURI()); }
@Test public void mapURIWhenHostMappingIsNull() throws Exception { // GIVEN hostBasedMapping.addMapping(new HostURIMapping(null, null)); // WHEN VirtualURIMapping.MappingResult res = hostBasedMapping.mapURI("/products"); // THEN assertNotNull(res); assertEquals("/product/detail.html", res.getToURI()); } }