// Path: NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/vo/Context.java
// public class Context extends GenericContext<String> {
// 
//     private String publicKey;
// 
//     public Context() {
//         super(String.class);
//     }
// 
//     public Context setBaseUrl(final String baseUrl) {
//         return (Context) this.setValue(Constants.BASE_URL, baseUrl);
//     }
// 
//     public String getBaseUrl() {
//         return getValue(Constants.BASE_URL);
//     }
// 
//     public Context setUsername(final String username) {
//         return (Context) this.setValue(Constants.USERNAME, username);
//     }
// 
//     public String getUsername() {
//         return getValue(Constants.USERNAME);
//     }
// 
//     public Context setPassword(final String password) {
//         return (Context) this.setValue(Constants.PASSWORD, password);
//     }
// 
//     public String getPassword() {
//         return getValue(Constants.PASSWORD);
//     }
// 
//     public Context setApiKey(final String apiKey) {
//         return (Context) this.setValue(Constants.Token.API_KEY, apiKey);
//     }
// 
//     public String getApiKey() {
//         return getValue(Constants.Token.API_KEY);
//     }
// 
//     public Context setSecurityMode(final SecurityMode securityMode) {
//         return (Context) this.setValue(Constants.SECURITY_MODE, securityMode.toString());
//     }
// 
//     public SecurityMode getSecurityMode() {
//         final String securityMode = getValue(Constants.SECURITY_MODE);
//         return securityMode != null ? SecurityMode.valueOf(securityMode) : null;
//     }
// 
//     public Context setVendorNumber(final String vendorNumber) {
//         return (Context) this.setValue(Constants.Vendor.VENDOR_NUMBER, vendorNumber);
//     }
// 
//     public String getVendorNumber() {
//         return getValue(Constants.Vendor.VENDOR_NUMBER);
//     }
// 
//     /**
//      * Add public key to be used for validate signed NetLicensing response.
//      *
//      * @param publicKey
//      *            client publicKey.
//      */
//     public void setPublicKey(final String publicKey) {
//         this.publicKey = publicKey;
//     }
// 
//     public String getPublicKey() {
//         return publicKey;
//     }
// 
// }
// 
// Path: NetLicensingClient/src/main/java/com/labs64/netlicensing/exception/RestException.java
// public class RestException extends NetLicensingException {
// 
//     private static final long serialVersionUID = -3863879794574523844L;
// 
//     /**
//      * Construct a <code>RestException</code> with the specified detail message.
//      * 
//      * @param msg
//      *            the detail message
//      */
//     public RestException(final String msg) {
//         super(msg);
//     }
// 
//     /**
//      * Construct a <code>RestException</code> with the specified detail message and cause exception.
//      * 
//      * @param msg
//      *            the detail message
//      * @param cause
//      *            the cause exception
//      */
//     public RestException(final String msg, final Throwable cause) {
//         super(msg, cause);
//     }
// 
// }


import javax.ws.rs.GET;
import javax.ws.rs.HttpMethod;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
import org.junit.BeforeClass;
import org.junit.Test;
import com.labs64.netlicensing.domain.vo.Context;
import com.labs64.netlicensing.exception.RestException;
import com.labs64.netlicensing.schema.context.ObjectFactory;
/* 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
 *
 *      https://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.
 */
package com.labs64.netlicensing.service;




/**
 * Common integration tests for {@link NetLicensingService}.
 */
public class NetLicensingServiceTest extends BaseServiceTest {

    // *** NLIC Tests ***

    private static Context context;

    @BeforeClass
    public static void setup() {
        context = createContext();
    }

    @Test(expected = RestException.class)
    public void testNotExistingService() throws Exception {
        NetLicensingService.getInstance().request(context, HttpMethod.GET, "non-existing-service", null, null);
    }

    @Test(expected = RestException.class)
    public void testUnsupportedStatusCode() throws Exception {
        NetLicensingService.getInstance().request(context, HttpMethod.GET, "unsupported-status-code", null, null);
    }

    // *** NLIC test mock resource ***

    @Override
    protected java.lang.Class<?> getResourceClass() {
        return NLICResource.class;
    }

    @Path(REST_API_PATH)
// Path: NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/vo/Context.java
// public class Context extends GenericContext<String> {
// 
//     private String publicKey;
// 
//     public Context() {
//         super(String.class);
//     }
// 
//     public Context setBaseUrl(final String baseUrl) {
//         return (Context) this.setValue(Constants.BASE_URL, baseUrl);
//     }
// 
//     public String getBaseUrl() {
//         return getValue(Constants.BASE_URL);
//     }
// 
//     public Context setUsername(final String username) {
//         return (Context) this.setValue(Constants.USERNAME, username);
//     }
// 
//     public String getUsername() {
//         return getValue(Constants.USERNAME);
//     }
// 
//     public Context setPassword(final String password) {
//         return (Context) this.setValue(Constants.PASSWORD, password);
//     }
// 
//     public String getPassword() {
//         return getValue(Constants.PASSWORD);
//     }
// 
//     public Context setApiKey(final String apiKey) {
//         return (Context) this.setValue(Constants.Token.API_KEY, apiKey);
//     }
// 
//     public String getApiKey() {
//         return getValue(Constants.Token.API_KEY);
//     }
// 
//     public Context setSecurityMode(final SecurityMode securityMode) {
//         return (Context) this.setValue(Constants.SECURITY_MODE, securityMode.toString());
//     }
// 
//     public SecurityMode getSecurityMode() {
//         final String securityMode = getValue(Constants.SECURITY_MODE);
//         return securityMode != null ? SecurityMode.valueOf(securityMode) : null;
//     }
// 
//     public Context setVendorNumber(final String vendorNumber) {
//         return (Context) this.setValue(Constants.Vendor.VENDOR_NUMBER, vendorNumber);
//     }
// 
//     public String getVendorNumber() {
//         return getValue(Constants.Vendor.VENDOR_NUMBER);
//     }
// 
//     /**
//      * Add public key to be used for validate signed NetLicensing response.
//      *
//      * @param publicKey
//      *            client publicKey.
//      */
//     public void setPublicKey(final String publicKey) {
//         this.publicKey = publicKey;
//     }
// 
//     public String getPublicKey() {
//         return publicKey;
//     }
// 
// }
// 
// Path: NetLicensingClient/src/main/java/com/labs64/netlicensing/exception/RestException.java
// public class RestException extends NetLicensingException {
// 
//     private static final long serialVersionUID = -3863879794574523844L;
// 
//     /**
//      * Construct a <code>RestException</code> with the specified detail message.
//      * 
//      * @param msg
//      *            the detail message
//      */
//     public RestException(final String msg) {
//         super(msg);
//     }
// 
//     /**
//      * Construct a <code>RestException</code> with the specified detail message and cause exception.
//      * 
//      * @param msg
//      *            the detail message
//      * @param cause
//      *            the cause exception
//      */
//     public RestException(final String msg, final Throwable cause) {
//         super(msg, cause);
//     }
// 
// }


// Path: NetLicensingClient/src/test/java/com/labs64/netlicensing/service/NetLicensingServiceTest.java
import javax.ws.rs.GET;
import javax.ws.rs.HttpMethod;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
import org.junit.BeforeClass;
import org.junit.Test;
import com.labs64.netlicensing.domain.vo.Context;
import com.labs64.netlicensing.exception.RestException;
import com.labs64.netlicensing.schema.context.ObjectFactory;

/* 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
 *
 *      https://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.
 */
package com.labs64.netlicensing.service;




/**
 * Common integration tests for {@link NetLicensingService}.
 */
public class NetLicensingServiceTest extends BaseServiceTest {

    // *** NLIC Tests ***

    private static Context context;

    @BeforeClass
    public static void setup() {
        context = createContext();
    }

    @Test(expected = RestException.class)
    public void testNotExistingService() throws Exception {
        NetLicensingService.getInstance().request(context, HttpMethod.GET, "non-existing-service", null, null);
    }

    @Test(expected = RestException.class)
    public void testUnsupportedStatusCode() throws Exception {
        NetLicensingService.getInstance().request(context, HttpMethod.GET, "unsupported-status-code", null, null);
    }

    // *** NLIC test mock resource ***

    @Override
    protected java.lang.Class<?> getResourceClass() {
        return NLICResource.class;
    }

    @Path(REST_API_PATH)
    public static class NLICResource {