/* * Copyright 2015-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file 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.amazonaws.http.conn.ssl; import static org.hamcrest.Matchers.instanceOf; import static org.junit.Assert.assertThat; import org.junit.Test; import com.amazonaws.http.conn.ssl.MasterSecretValidators.MasterSecretValidator; import com.amazonaws.http.conn.ssl.MasterSecretValidators.NoOpMasterSecretValidator; import com.amazonaws.http.conn.ssl.privileged.PrivilegedMasterSecretValidator; import com.amazonaws.util.JavaVersionParser.JavaVersion; public class MasterSecretValidatorsTest { @Test public void java6() { assertMasterSecretValidatorImplForJavaVersion(PrivilegedMasterSecretValidator.class, jv(1, 6, 0, 90)); assertMasterSecretValidatorImplForJavaVersion(NoOpMasterSecretValidator.class, jv(1, 6, 0, 91)); assertMasterSecretValidatorImplForJavaVersion(NoOpMasterSecretValidator.class, jv(1, 6, 0, 92)); } @Test public void java7() { assertMasterSecretValidatorImplForJavaVersion(PrivilegedMasterSecretValidator.class, jv(1, 7, 0, 50)); assertMasterSecretValidatorImplForJavaVersion(NoOpMasterSecretValidator.class, jv(1, 7, 0, 51)); assertMasterSecretValidatorImplForJavaVersion(NoOpMasterSecretValidator.class, jv(1, 7, 0, 52)); } @Test public void java8() { assertMasterSecretValidatorImplForJavaVersion(PrivilegedMasterSecretValidator.class, jv(1, 8, 0, 30)); assertMasterSecretValidatorImplForJavaVersion(NoOpMasterSecretValidator.class, jv(1, 8, 0, 31)); assertMasterSecretValidatorImplForJavaVersion(NoOpMasterSecretValidator.class, jv(1, 8, 0, 32)); } @Test public void java9() { assertMasterSecretValidatorImplForJavaVersion(NoOpMasterSecretValidator.class, jv(1, 9, 0, 0)); } @Test public void unknownJavaVersion() { assertMasterSecretValidatorImplForJavaVersion(NoOpMasterSecretValidator.class, jv(1, 5, 0, 0)); } /** * Asserts that the correct implementation of {@link MasterSecretValidator} is returned per the * JavaVersion * * @param masterSecretValidatorImpl * Expected implementation of {@link MasterSecretValidator} * @param javaVersion * Java version used */ private static void assertMasterSecretValidatorImplForJavaVersion(Class<? extends MasterSecretValidator> masterSecretValidatorImpl, JavaVersion javaVersion) { assertThat(MasterSecretValidators.getMasterSecretValidator(javaVersion), instanceOf(masterSecretValidatorImpl)); } /** * Convenience factory method for a {@link JavaVersion} */ private static JavaVersion jv(int majorVersionFamily, int majorVersion, int maintenanceNumber, int updateNumber) { return new JavaVersion(majorVersionFamily, majorVersion, maintenanceNumber, updateNumber); } }