blob: 4d95bc94b851ae109448fc2ea495e5b40970f14a [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Edgar Mueller - initial API and implementation
******************************************************************************/
package org.eclipse.emf.emfstore.server.test;
import static org.junit.Assert.assertEquals;
import org.eclipse.emf.emfstore.internal.server.ServerConfiguration;
import org.eclipse.emf.emfstore.internal.server.accesscontrol.authentication.verifiers.VersionVerifier;
import org.eclipse.emf.emfstore.internal.server.exceptions.ClientVersionOutOfDateException;
import org.eclipse.emf.emfstore.internal.server.model.ClientVersionInfo;
import org.eclipse.emf.emfstore.internal.server.model.ModelFactory;
import org.junit.Test;
/**
* Version verifier test.
*
* @author emueller
*/
public class VersionVerifierTest {
private static final String[] ACCEPTED_VERSION_1_2_3 = new String[] { "1.2.3" }; //$NON-NLS-1$
private static final String[] ACCEPTED_VERSION_1_2_4 = new String[] { "1.2.4" }; //$NON-NLS-1$
private static final String[] WILDCARD_VERSION = new String[] { "1.2.4.*" }; //$NON-NLS-1$
private static final String[] WILDCARD_VERSION_WITH_SUFFIX = new String[] { "1.2.4.*FOO" }; //$NON-NLS-1$
private static final String[] ANY_VERSION = new String[] { ServerConfiguration.ACCEPTED_VERSIONS_ANY };
private static final String[] ACCEPTED_VERSIONS = new String[] {
ACCEPTED_VERSION_1_2_3[0], ACCEPTED_VERSION_1_2_4[0] };
private static ClientVersionInfo createVersionInfo(String version) {
final ClientVersionInfo clientVersionInfo = ModelFactory.eINSTANCE.createClientVersionInfo();
clientVersionInfo.setVersion(version);
return clientVersionInfo;
}
@Test(expected = ClientVersionOutOfDateException.class)
public void testVerifyNull() throws ClientVersionOutOfDateException {
VersionVerifier.verify(ACCEPTED_VERSIONS, null);
}
@Test
public void testSupplyNoVersions() throws ClientVersionOutOfDateException {
VersionVerifier.verify(null, createVersionInfo("1.2.3")); //$NON-NLS-1$
}
@Test
public void testMathesOneOfMany() throws ClientVersionOutOfDateException {
VersionVerifier.verify(ACCEPTED_VERSION_1_2_3, createVersionInfo("1.2.3")); //$NON-NLS-1$
}
@Test
public void testMathesOne() throws ClientVersionOutOfDateException {
VersionVerifier.verify(ACCEPTED_VERSIONS, createVersionInfo("1.2.3")); //$NON-NLS-1$
}
@Test
public void testMatchesWildcard() throws ClientVersionOutOfDateException {
VersionVerifier.verify(WILDCARD_VERSION, createVersionInfo("1.2.4.1")); //$NON-NLS-1$
VersionVerifier.verify(WILDCARD_VERSION, createVersionInfo("1.2.4.1xyz")); //$NON-NLS-1$
}
@Test(expected = ClientVersionOutOfDateException.class)
public void testMatchesNotWildcard1() throws ClientVersionOutOfDateException {
VersionVerifier.verify(WILDCARD_VERSION, createVersionInfo("1.2.3.1")); //$NON-NLS-1$
}
@Test(expected = ClientVersionOutOfDateException.class)
public void testMatchesNotWildcard2() throws ClientVersionOutOfDateException {
VersionVerifier.verify(WILDCARD_VERSION, createVersionInfo("1.2.3.4.1xyz")); //$NON-NLS-1$
}
@Test(expected = ClientVersionOutOfDateException.class)
public void testMatchesNotWildcard3() throws ClientVersionOutOfDateException {
VersionVerifier.verify(WILDCARD_VERSION, createVersionInfo("1.2.3.4")); //$NON-NLS-1$
}
@Test
public void testMatchesWildcardWithSuffix() throws ClientVersionOutOfDateException {
VersionVerifier.verify(WILDCARD_VERSION_WITH_SUFFIX, createVersionInfo("1.2.4.1xyzFOO")); //$NON-NLS-1$
VersionVerifier.verify(WILDCARD_VERSION_WITH_SUFFIX, createVersionInfo("1.2.4.1FOO")); //$NON-NLS-1$
}
@Test(expected = ClientVersionOutOfDateException.class)
public void testMatchesNotWildcardWithSuffix1() throws ClientVersionOutOfDateException {
VersionVerifier.verify(WILDCARD_VERSION_WITH_SUFFIX, createVersionInfo("1.2.4.1xyz")); //$NON-NLS-1$
}
@Test(expected = ClientVersionOutOfDateException.class)
public void testMatchesNotWildcardWithSuffix2() throws ClientVersionOutOfDateException {
VersionVerifier.verify(WILDCARD_VERSION_WITH_SUFFIX, createVersionInfo("1.2.4FOO")); //$NON-NLS-1$
}
@Test(expected = ClientVersionOutOfDateException.class)
public void testMatchesNotWildcardWithSuffix3() throws ClientVersionOutOfDateException {
VersionVerifier.verify(WILDCARD_VERSION_WITH_SUFFIX, createVersionInfo("1X2.4FOO")); //$NON-NLS-1$
}
@Test
public void testMatchesAny() throws ClientVersionOutOfDateException {
VersionVerifier.verify(ANY_VERSION, createVersionInfo("abc")); //$NON-NLS-1$
}
@Test
public void testInspectClientVersionOutOfDateMessage() {
try {
VersionVerifier.verify(ACCEPTED_VERSION_1_2_3, createVersionInfo("1.1.1")); //$NON-NLS-1$
} catch (final ClientVersionOutOfDateException ex) {
assertEquals("Client version: " + "1.1.1" //$NON-NLS-1$ //$NON-NLS-2$
+ " - Accepted versions: " + "1.2.3.", ex.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$
}
}
@Test
public void testInspectClientVersionOutOfDateMessages() {
try {
VersionVerifier.verify(ACCEPTED_VERSIONS, createVersionInfo("1.1.1")); //$NON-NLS-1$
} catch (final ClientVersionOutOfDateException ex) {
assertEquals("Client version: " + "1.1.1" //$NON-NLS-1$ //$NON-NLS-2$
+ " - Accepted versions: " + "1.2.3, 1.2.4.", ex.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$
}
}
}