diff options
Diffstat (limited to 'pomba/network-discovery/src/test')
2 files changed, 815 insertions, 0 deletions
diff --git a/pomba/network-discovery/src/test/java/org/onap/sdnc/apps/pomba/networkdiscovery/unittest/service/NetworkDiscoveryTest.java b/pomba/network-discovery/src/test/java/org/onap/sdnc/apps/pomba/networkdiscovery/unittest/service/NetworkDiscoveryTest.java new file mode 100644 index 0000000..f908dfd --- /dev/null +++ b/pomba/network-discovery/src/test/java/org/onap/sdnc/apps/pomba/networkdiscovery/unittest/service/NetworkDiscoveryTest.java @@ -0,0 +1,316 @@ +/* + * ============LICENSE_START=================================================== + * Copyright (c) 2018 Amdocs + * ============================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END===================================================== + */ + +package org.onap.sdnc.apps.pomba.networkdiscovery.unittest.service; + +import static com.github.tomakehurst.wiremock.client.WireMock.get; +import static com.github.tomakehurst.wiremock.client.WireMock.ok; +import static com.github.tomakehurst.wiremock.client.WireMock.okTextXml; +import static com.github.tomakehurst.wiremock.client.WireMock.post; +import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import com.fasterxml.jackson.databind.AnnotationIntrospector; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.type.TypeFactory; +import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector; +import com.github.tomakehurst.wiremock.junit.WireMockRule; +import com.github.tomakehurst.wiremock.stubbing.ServeEvent; +import com.github.tomakehurst.wiremock.verification.LoggedRequest; +import java.net.URISyntaxException; +import java.text.MessageFormat; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Base64; +import java.util.List; +import java.util.UUID; +import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.core.HttpHeaders; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.Response.Status; +import org.junit.After; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.onap.logging.ref.slf4j.ONAPLogConstants; +import org.onap.sdnc.apps.pomba.networkdiscovery.datamodel.Attribute; +import org.onap.sdnc.apps.pomba.networkdiscovery.datamodel.DataQuality; +import org.onap.sdnc.apps.pomba.networkdiscovery.datamodel.NetworkDiscoveryNotification; +import org.onap.sdnc.apps.pomba.networkdiscovery.datamodel.NetworkDiscoveryResponse; +import org.onap.sdnc.apps.pomba.networkdiscovery.datamodel.Resource; +import org.onap.sdnc.apps.pomba.networkdiscovery.service.rs.RestService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.core.env.Environment; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.web.WebAppConfiguration; + +@RunWith(SpringJUnit4ClassRunner.class) +@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class }) +@WebAppConfiguration +@SpringBootTest +@TestPropertySource(properties = { + "enricher.url=http://localhost:9505", + "basicAuth.username=admin", + "basicAuth.password=admin" +}) +public class NetworkDiscoveryTest { + private static final String V1 = "v1"; + private static final String APP = "junit"; + + private static final String RESOURCE_TYPE_VSERVER = "vserver"; + private static final String CALLBACK_PATH = "/callback"; + + private static final String AUTH = "Basic " + Base64.getEncoder().encodeToString("admin:admin".getBytes()); + @Autowired + private Environment environment; + + @Rule + public WireMockRule enricherRule = new WireMockRule(wireMockConfig().port(9505)); + + @Rule + public WireMockRule callbackRule = new WireMockRule(wireMockConfig().dynamicPort()); + + @Autowired + private RestService service; + + private String transactionId = UUID.randomUUID().toString(); + private String requestId = UUID.randomUUID().toString(); + private HttpServletRequest httpRequest = new TestHttpServletRequest(); + + public NetworkDiscoveryTest() throws URISyntaxException { + + } + + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void testNoAuthHeader() throws Exception { + // no Authorization header + List<String> resourceIds = Arrays.asList(UUID.randomUUID().toString()); + Response response = this.service.findbyResourceIdAndType(this.httpRequest, V1, null, APP, this.transactionId, + this.requestId, RESOURCE_TYPE_VSERVER, resourceIds, getCallbackUrl()); + assertEquals(Status.UNAUTHORIZED.getStatusCode(), response.getStatus()); + // should get WWW-Authenticate header in response + assertTrue(response.getHeaderString(HttpHeaders.WWW_AUTHENTICATE).startsWith("Basic realm")); + } + + @Test + public void testUnauthorized() throws Exception { + String authorization = "Basic " + Base64.getEncoder().encodeToString("aaa:bbb".getBytes()); + // bad Authorization header + List<String> resourceIds = Arrays.asList(UUID.randomUUID().toString()); + Response response = this.service.findbyResourceIdAndType(this.httpRequest, V1, authorization, APP, this.transactionId, + this.requestId, RESOURCE_TYPE_VSERVER, resourceIds, getCallbackUrl()); + assertEquals(Status.UNAUTHORIZED.getStatusCode(), response.getStatus()); + // should not get WWW-Authenticate header in response + assertNull(response.getHeaderString(HttpHeaders.WWW_AUTHENTICATE)); + } + + @Test + public void testVerifyAppId() throws Exception { + // no X-FromAppId header + List<String> resourceIds = Arrays.asList(UUID.randomUUID().toString()); + Response response = this.service.findbyResourceIdAndType(this.httpRequest, V1, AUTH, null, this.transactionId, + this.requestId, RESOURCE_TYPE_VSERVER, resourceIds, getCallbackUrl()); + assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus()); + assertTrue(((String)response.getEntity()).contains(ONAPLogConstants.Headers.PARTNER_NAME)); + } + + @Test + public void testVerifyRequestId() throws Exception { + // no X-FromAppId header + List<String> resourceIds = Arrays.asList(UUID.randomUUID().toString()); + Response response = this.service.findbyResourceIdAndType(this.httpRequest, V1, AUTH, APP, this.transactionId, + null, RESOURCE_TYPE_VSERVER, resourceIds, getCallbackUrl()); + assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus()); + assertTrue(((String)response.getEntity()).contains("requestId")); + } + + @Test + public void testVerifyNotificationUrl() throws Exception { + // no X-FromAppId header + List<String> resourceIds = Arrays.asList(UUID.randomUUID().toString()); + Response response = this.service.findbyResourceIdAndType(this.httpRequest, V1, AUTH, APP, this.transactionId, + this.requestId, RESOURCE_TYPE_VSERVER, resourceIds, null); + assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus()); + assertTrue(((String)response.getEntity()).contains("notificationURL")); + } + + @Test + public void testVerifyResourceIds() throws Exception { + // no resourceIds list + { + List<String> resourceIds = null; + Response response = this.service.findbyResourceIdAndType(this.httpRequest, V1, AUTH, APP, this.transactionId, + this.requestId, RESOURCE_TYPE_VSERVER, resourceIds, getCallbackUrl()); + assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus()); + assertTrue(((String)response.getEntity()).contains("resourceIds")); + } + + // empty resourceId list + { + List<String> resourceIds = new ArrayList<>(); + Response response = this.service.findbyResourceIdAndType(this.httpRequest, V1, AUTH, APP, this.transactionId, + this.requestId, RESOURCE_TYPE_VSERVER, resourceIds, getCallbackUrl()); + assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus()); + assertTrue(((String)response.getEntity()).contains("resourceIds")); + } + } + + + @Test + public void testVerifyResourceType() throws Exception { + // no resource type + List<String> resourceIds = Arrays.asList(UUID.randomUUID().toString()); + Response response = this.service.findbyResourceIdAndType(this.httpRequest, V1, AUTH, APP, this.transactionId, + this.requestId, null, resourceIds, getCallbackUrl()); + assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus()); + assertTrue(((String)response.getEntity()).contains("resourceType")); + } + + @Test + public void testDiscoverVserver() throws Exception { + String vserverId = UUID.randomUUID().toString(); + + String resourcePath = MessageFormat.format( + this.environment.getProperty("enricher.type.vserver.url"), + new Object[] { vserverId }); + + String enricherPayload = String.format( + "<vserver xmlns=\"http://org.onap.aai.inventory/v11\">\r\n" + + " <vserver-id>%s</vserver-id>\r\n" + + " <power-state>1</power-state>\r\n" + + " <vm-state>active</vm-state>\r\n" + + " <status>ACTIVE</status>\r\n" + + " <host-status>UNKNOWN</host-status>\r\n" + + " <updated>2017-11-20T04:26:13Z</updated>\r\n" + + " <disk-allocation-gb>.010</disk-allocation-gb>\r\n" + + " <memory-usage-mb>null</memory-usage-mb>\r\n" + + " <cpu-util-percent>.043</cpu-util-percent>\r\n" + + " <retrieval-timestamp>2018-06-27 19:41:49 +0000</retrieval-timestamp>\r\n" + + "</vserver>", vserverId); + + this.enricherRule.stubFor(get(resourcePath).willReturn(okTextXml(enricherPayload))); + + this.callbackRule.stubFor(post(CALLBACK_PATH).willReturn(ok("Acknowledged"))); + + Response response = this.service.findbyResourceIdAndType(this.httpRequest, V1, AUTH, APP, null, this.requestId, + RESOURCE_TYPE_VSERVER, Arrays.asList(vserverId), getCallbackUrl()); + + assertEquals(Status.OK.getStatusCode(), response.getStatus()); + NetworkDiscoveryResponse entity = (NetworkDiscoveryResponse) response.getEntity(); + assertEquals(requestId, entity.getRequestId()); + assertEquals(Status.ACCEPTED.getStatusCode(), entity.getCode().intValue()); + assertEquals(Boolean.FALSE, entity.getAckFinalIndicator()); + + List<ServeEvent> events = waitForRequests(this.callbackRule, 1, 10); + LoggedRequest notificationRequest = events.get(0).getRequest(); + assertEquals(AUTH, notificationRequest.getHeader(HttpHeaders.AUTHORIZATION)); + String notificationJson = notificationRequest.getBodyAsString(); + + ObjectMapper mapper = new ObjectMapper(); + AnnotationIntrospector introspector = new JaxbAnnotationIntrospector(TypeFactory.defaultInstance()); + mapper.setAnnotationIntrospector(introspector); + NetworkDiscoveryNotification notification = + mapper.readValue(notificationJson, NetworkDiscoveryNotification.class); + + assertEquals(requestId, notification.getRequestId()); + assertEquals(Status.OK.getStatusCode(), notification.getCode().intValue()); + assertEquals(Boolean.TRUE, notification.getAckFinalIndicator()); + + assertEquals(1, notification.getResources().size()); + Resource vserver = notification.getResources().get(0); + assertEquals(vserverId, vserver.getId()); + assertEquals("vserver", vserver.getType()); + assertEquals(DataQuality.Status.ok, vserver.getDataQuality().getStatus()); + + verifyAttribute(vserver.getAttributeList(), "power-state", "1"); + verifyAttribute(vserver.getAttributeList(), "vm-state", "active"); + verifyAttribute(vserver.getAttributeList(), "status", "ACTIVE"); + verifyAttribute(vserver.getAttributeList(), "host-status", "UNKNOWN"); + verifyAttribute(vserver.getAttributeList(), "updated", "2017-11-20T04:26:13Z"); + verifyAttribute(vserver.getAttributeList(), "disk-allocation-gb", ".010"); + verifyAttribute(vserver.getAttributeList(), "memory-usage-mb", "null"); + verifyAttribute(vserver.getAttributeList(), "cpu-util-percent", ".043"); + verifyAttribute(vserver.getAttributeList(), "retrieval-timestamp", "2018-06-27 19:41:49 +0000"); + } + + /** + * Verify API returns a final response indicating no discovery possible. + */ + @Test + public void testUnsupportedResourceType() throws Exception { + + String resourceType = "unsupported"; + List<String> resourceIds = Arrays.asList("dummyId"); + Response response = this.service.findbyResourceIdAndType(this.httpRequest, V1, AUTH, APP, this.transactionId, + this.requestId, resourceType, resourceIds, getCallbackUrl()); + assertEquals(Status.OK.getStatusCode(), response.getStatus()); + + NetworkDiscoveryResponse entity = (NetworkDiscoveryResponse) response.getEntity(); + assertEquals(Boolean.TRUE, entity.getAckFinalIndicator()); + assertEquals(Status.NO_CONTENT.getStatusCode(), entity.getCode().intValue()); + } + + private void verifyAttribute(List<Attribute> attributeList, String attrName, String attrValue) { + for (Attribute attr : attributeList) { + if (attr.getName().equals(attrName)) { + assertEquals("Unexpected value for attribute " + attrName, attrValue, attr.getValue()); + return; + } + } + fail("Attribute " + attrName + " not found"); + } + + private List<ServeEvent> waitForRequests(WireMockRule service, int minRequests, long timeoutSeconds) + throws InterruptedException { + + long remaining = timeoutSeconds * 1000L; + long retryInterval = Math.min(remaining / 5, 1000); + while (true) { + List<ServeEvent> events = service.getAllServeEvents(); + if (events.size() >= minRequests) { + return events; + } + if (remaining <= 0) { + fail("Timeout waiting for " + minRequests + " requests"); + } + Thread.sleep(retryInterval); + remaining -= retryInterval; + } + } + + private String getCallbackUrl() { + return "http://localhost:" + this.callbackRule.port() + CALLBACK_PATH; + } +} diff --git a/pomba/network-discovery/src/test/java/org/onap/sdnc/apps/pomba/networkdiscovery/unittest/service/TestHttpServletRequest.java b/pomba/network-discovery/src/test/java/org/onap/sdnc/apps/pomba/networkdiscovery/unittest/service/TestHttpServletRequest.java new file mode 100644 index 0000000..b9af503 --- /dev/null +++ b/pomba/network-discovery/src/test/java/org/onap/sdnc/apps/pomba/networkdiscovery/unittest/service/TestHttpServletRequest.java @@ -0,0 +1,499 @@ +/* + * ============LICENSE_START=================================================== + * Copyright (c) 2018 Amdocs + * ============================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END===================================================== + */ +package org.onap.sdnc.apps.pomba.networkdiscovery.unittest.service; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.security.Principal; +import java.util.Collection; +import java.util.Enumeration; +import java.util.Locale; +import java.util.Map; +import javax.servlet.AsyncContext; +import javax.servlet.DispatcherType; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletContext; +import javax.servlet.ServletException; +import javax.servlet.ServletInputStream; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import javax.servlet.http.HttpUpgradeHandler; +import javax.servlet.http.Part; + +public class TestHttpServletRequest implements HttpServletRequest { + @Override + public String getHeader(String name) { + return null; + } + + @Override + public String getRemoteAddr() { + return "localhost"; + } + + @Override + public String getServerName() { + return "localhost"; + } + + @Override + public String getRequestURI() { + return "/test"; + } + + + @Override + public Object getAttribute(String name) { + // TODO Implement getAttribute + throw new UnsupportedOperationException("getAttribute"); + } + + @Override + public Enumeration<String> getAttributeNames() { + // TODO Implement getAttributeNames + throw new UnsupportedOperationException("getAttributeNames"); + } + + @Override + public String getCharacterEncoding() { + // TODO Implement getCharacterEncoding + throw new UnsupportedOperationException("getCharacterEncoding"); + } + + @Override + public void setCharacterEncoding(String env) throws UnsupportedEncodingException { + // TODO Implement setCharacterEncoding + throw new UnsupportedOperationException("setCharacterEncoding"); + } + + @Override + public int getContentLength() { + // TODO Implement getContentLength + throw new UnsupportedOperationException("getContentLength"); + } + + @Override + public long getContentLengthLong() { + // TODO Implement getContentLengthLong + throw new UnsupportedOperationException("getContentLengthLong"); + } + + @Override + public String getContentType() { + // TODO Implement getContentType + throw new UnsupportedOperationException("getContentType"); + } + + @Override + public ServletInputStream getInputStream() throws IOException { + // TODO Implement getInputStream + throw new UnsupportedOperationException("getInputStream"); + } + + @Override + public String getParameter(String name) { + // TODO Implement getParameter + throw new UnsupportedOperationException("getParameter"); + } + + @Override + public Enumeration<String> getParameterNames() { + // TODO Implement getParameterNames + throw new UnsupportedOperationException("getParameterNames"); + } + + @Override + public String[] getParameterValues(String name) { + // TODO Implement getParameterValues + throw new UnsupportedOperationException("getParameterValues"); + } + + @Override + public Map<String, String[]> getParameterMap() { + // TODO Implement getParameterMap + throw new UnsupportedOperationException("getParameterMap"); + } + + @Override + public String getProtocol() { + // TODO Implement getProtocol + throw new UnsupportedOperationException("getProtocol"); + } + + @Override + public String getScheme() { + // TODO Implement getScheme + throw new UnsupportedOperationException("getScheme"); + } + + @Override + public int getServerPort() { + // TODO Implement getServerPort + throw new UnsupportedOperationException("getServerPort"); + } + + @Override + public BufferedReader getReader() throws IOException { + // TODO Implement getReader + throw new UnsupportedOperationException("getReader"); + } + + @Override + public String getRemoteHost() { + // TODO Implement getRemoteHost + throw new UnsupportedOperationException("getRemoteHost"); + } + + @Override + public void setAttribute(String name, Object obj) { + // TODO Implement setAttribute + throw new UnsupportedOperationException("setAttribute"); + } + + @Override + public void removeAttribute(String name) { + // TODO Implement removeAttribute + throw new UnsupportedOperationException("removeAttribute"); + } + + @Override + public Locale getLocale() { + // TODO Implement getLocale + throw new UnsupportedOperationException("getLocale"); + } + + @Override + public Enumeration<Locale> getLocales() { + // TODO Implement getLocales + throw new UnsupportedOperationException("getLocales"); + } + + @Override + public boolean isSecure() { + // TODO Implement isSecure + throw new UnsupportedOperationException("isSecure"); + } + + @Override + public RequestDispatcher getRequestDispatcher(String path) { + // TODO Implement getRequestDispatcher + throw new UnsupportedOperationException("getRequestDispatcher"); + } + + @Override + public String getRealPath(String path) { + // TODO Implement getRealPath + throw new UnsupportedOperationException("getRealPath"); + } + + @Override + public int getRemotePort() { + // TODO Implement getRemotePort + throw new UnsupportedOperationException("getRemotePort"); + } + + @Override + public String getLocalName() { + // TODO Implement getLocalName + throw new UnsupportedOperationException("getLocalName"); + } + + @Override + public String getLocalAddr() { + // TODO Implement getLocalAddr + throw new UnsupportedOperationException("getLocalAddr"); + } + + @Override + public int getLocalPort() { + // TODO Implement getLocalPort + throw new UnsupportedOperationException("getLocalPort"); + } + + @Override + public ServletContext getServletContext() { + // TODO Implement getServletContext + throw new UnsupportedOperationException("getServletContext"); + } + + @Override + public AsyncContext startAsync() throws IllegalStateException { + // TODO Implement startAsync + throw new UnsupportedOperationException("startAsync"); + } + + @Override + public AsyncContext startAsync(ServletRequest servletRequest, ServletResponse servletResponse) + throws IllegalStateException { + // TODO Implement startAsync + throw new UnsupportedOperationException("startAsync"); + } + + @Override + public boolean isAsyncStarted() { + // TODO Implement isAsyncStarted + throw new UnsupportedOperationException("isAsyncStarted"); + } + + @Override + public boolean isAsyncSupported() { + // TODO Implement isAsyncSupported + throw new UnsupportedOperationException("isAsyncSupported"); + } + + @Override + public AsyncContext getAsyncContext() { + // TODO Implement getAsyncContext + throw new UnsupportedOperationException("getAsyncContext"); + } + + @Override + public DispatcherType getDispatcherType() { + // TODO Implement getDispatcherType + throw new UnsupportedOperationException("getDispatcherType"); + } + + @Override + public String getAuthType() { + // TODO Implement getAuthType + throw new UnsupportedOperationException("getAuthType"); + } + + @Override + public Cookie[] getCookies() { + // TODO Implement getCookies + throw new UnsupportedOperationException("getCookies"); + } + + @Override + public long getDateHeader(String name) { + // TODO Implement getDateHeader + throw new UnsupportedOperationException("getDateHeader"); + } + + @Override + public Enumeration<String> getHeaders(String name) { + // TODO Implement getHeaders + throw new UnsupportedOperationException("getHeaders"); + } + + @Override + public Enumeration<String> getHeaderNames() { + // TODO Implement getHeaderNames + throw new UnsupportedOperationException("getHeaderNames"); + } + + @Override + public int getIntHeader(String name) { + // TODO Implement getIntHeader + throw new UnsupportedOperationException("getIntHeader"); + } + + @Override + public String getMethod() { + // TODO Implement getMethod + throw new UnsupportedOperationException("getMethod"); + } + + @Override + public String getPathInfo() { + // TODO Implement getPathInfo + throw new UnsupportedOperationException("getPathInfo"); + } + + @Override + public String getPathTranslated() { + // TODO Implement getPathTranslated + throw new UnsupportedOperationException("getPathTranslated"); + } + + @Override + public String getContextPath() { + // TODO Implement getContextPath + throw new UnsupportedOperationException("getContextPath"); + } + + @Override + public String getQueryString() { + // TODO Implement getQueryString + throw new UnsupportedOperationException("getQueryString"); + } + + @Override + public String getRemoteUser() { + // TODO Implement getRemoteUser + throw new UnsupportedOperationException("getRemoteUser"); + } + + @Override + public boolean isUserInRole(String role) { + // TODO Implement isUserInRole + throw new UnsupportedOperationException("isUserInRole"); + } + + @Override + public Principal getUserPrincipal() { + // TODO Implement getUserPrincipal + throw new UnsupportedOperationException("getUserPrincipal"); + } + + @Override + public String getRequestedSessionId() { + // TODO Implement getRequestedSessionId + throw new UnsupportedOperationException("getRequestedSessionId"); + } + + @Override + public StringBuffer getRequestURL() { + // TODO Implement getRequestURL + throw new UnsupportedOperationException("getRequestURL"); + } + + @Override + public String getServletPath() { + // TODO Implement getServletPath + throw new UnsupportedOperationException("getServletPath"); + } + + @Override + public HttpSession getSession(boolean create) { + // TODO Implement getSession + throw new UnsupportedOperationException("getSession"); + } + + @Override + public HttpSession getSession() { + // TODO Implement getSession + throw new UnsupportedOperationException("getSession"); + } + + @Override + public String changeSessionId() { + // TODO Implement changeSessionId + throw new UnsupportedOperationException("changeSessionId"); + } + + @Override + public boolean isRequestedSessionIdValid() { + // TODO Implement isRequestedSessionIdValid + throw new UnsupportedOperationException("isRequestedSessionIdValid"); + } + + @Override + public boolean isRequestedSessionIdFromCookie() { + // TODO Implement isRequestedSessionIdFromCookie + throw new UnsupportedOperationException("isRequestedSessionIdFromCookie"); + } + + @Override + public boolean isRequestedSessionIdFromURL() { + // TODO Implement isRequestedSessionIdFromURL + throw new UnsupportedOperationException("isRequestedSessionIdFromURL"); + } + + @Override + public boolean isRequestedSessionIdFromUrl() { + // TODO Implement isRequestedSessionIdFromUrl + throw new UnsupportedOperationException("isRequestedSessionIdFromUrl"); + } + + @Override + public boolean authenticate(HttpServletResponse response) throws IOException, ServletException { + // TODO Implement authenticate + throw new UnsupportedOperationException("authenticate"); + } + + @Override + public void login(String username, String password) throws ServletException { + // TODO Implement login + throw new UnsupportedOperationException("login"); + } + + @Override + public void logout() throws ServletException { + // TODO Implement logout + throw new UnsupportedOperationException("logout"); + } + + @Override + public Collection<Part> getParts() throws IOException, ServletException { + // TODO Implement getParts + throw new UnsupportedOperationException("getParts"); + } + + @Override + public Part getPart(String name) throws IOException, ServletException { + // TODO Implement getPart + throw new UnsupportedOperationException("getPart"); + } + + @Override + public <T extends HttpUpgradeHandler> T upgrade(Class<T> httpUpgradeHandlerClass) + throws IOException, ServletException { + // TODO Implement upgrade + throw new UnsupportedOperationException("upgrade"); + } + ///////////////////////////////////////////////////////////////////////////// + // Constants + ///////////////////////////////////////////////////////////////////////////// + + ///////////////////////////////////////////////////////////////////////////// + // Class variables + ///////////////////////////////////////////////////////////////////////////// + + ///////////////////////////////////////////////////////////////////////////// + // Instance variables + ///////////////////////////////////////////////////////////////////////////// + + ///////////////////////////////////////////////////////////////////////////// + // Constructors + ///////////////////////////////////////////////////////////////////////////// + + ///////////////////////////////////////////////////////////////////////////// + // Public methods + ///////////////////////////////////////////////////////////////////////////// + + ///////////////////////////////////////////////////////////////////////////// + // [interface name] implementation + ///////////////////////////////////////////////////////////////////////////// + + ///////////////////////////////////////////////////////////////////////////// + // [super class] override methods + ///////////////////////////////////////////////////////////////////////////// + + ///////////////////////////////////////////////////////////////////////////// + // Package protected methods + ///////////////////////////////////////////////////////////////////////////// + + ///////////////////////////////////////////////////////////////////////////// + // Protected methods + ///////////////////////////////////////////////////////////////////////////// + + ///////////////////////////////////////////////////////////////////////////// + // Private methods + ///////////////////////////////////////////////////////////////////////////// + + ///////////////////////////////////////////////////////////////////////////// + // Inner classes + ///////////////////////////////////////////////////////////////////////////// +} |