// 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/domain/vo/SecurityMode.java
// public enum SecurityMode {
// 
//     BASIC_AUTHENTICATION, APIKEY_IDENTIFICATION, ANONYMOUS_IDENTIFICATION
// 
// }


import java.util.Base64;
import javax.ws.rs.GET;
import javax.ws.rs.HeaderParam;
import javax.ws.rs.HttpMethod;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
import org.junit.Test;
import com.labs64.netlicensing.domain.vo.Context;
import com.labs64.netlicensing.domain.vo.SecurityMode;
import com.labs64.netlicensing.schema.context.Info;
import com.labs64.netlicensing.schema.context.Netlicensing;
import com.labs64.netlicensing.schema.context.ObjectFactory;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
/* 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;






/**
 * Tests for checking the ability to connect to services using different security modes
 */
public class SecurityTest extends BaseServiceTest {

    // *** NLIC Tests ***

    @Test
    public void testBasicAuthentication() throws Exception {
        final Context context = new Context()
                .setBaseUrl(BASE_URL)
// 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/domain/vo/SecurityMode.java
// public enum SecurityMode {
// 
//     BASIC_AUTHENTICATION, APIKEY_IDENTIFICATION, ANONYMOUS_IDENTIFICATION
// 
// }


// Path: NetLicensingClient/src/test/java/com/labs64/netlicensing/service/SecurityTest.java
import java.util.Base64;
import javax.ws.rs.GET;
import javax.ws.rs.HeaderParam;
import javax.ws.rs.HttpMethod;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
import org.junit.Test;
import com.labs64.netlicensing.domain.vo.Context;
import com.labs64.netlicensing.domain.vo.SecurityMode;
import com.labs64.netlicensing.schema.context.Info;
import com.labs64.netlicensing.schema.context.Netlicensing;
import com.labs64.netlicensing.schema.context.ObjectFactory;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

/* 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;






/**
 * Tests for checking the ability to connect to services using different security modes
 */
public class SecurityTest extends BaseServiceTest {

    // *** NLIC Tests ***

    @Test
    public void testBasicAuthentication() throws Exception {
        final Context context = new Context()
                .setBaseUrl(BASE_URL)
                .setSecurityMode(SecurityMode.BASIC_AUTHENTICATION)