mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-05 20:57:40 +00:00
GUACAMOLE-422: Add unit test for verifying GuacamoleProtocolVersion.
This commit is contained in:
@@ -0,0 +1,140 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you 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.
|
||||
*/
|
||||
|
||||
package org.apache.guacamole.protocol;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* Unit test for GuacamoleProtocolVersion. Verifies that Guacamole protocol
|
||||
* version string parsing works as required.
|
||||
*/
|
||||
public class GuacamoleProtocolVersionTest {
|
||||
|
||||
/**
|
||||
* Verifies that valid version strings are parsed successfully.
|
||||
*/
|
||||
@Test
|
||||
public void testValidVersionParse() {
|
||||
GuacamoleProtocolVersion version = GuacamoleProtocolVersion.parseVersion("VERSION_012_102_398");
|
||||
Assert.assertNotNull(version);
|
||||
Assert.assertEquals(12, version.getMajor());
|
||||
Assert.assertEquals(102, version.getMinor());
|
||||
Assert.assertEquals(398, version.getPatch());
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies that invalid version strings fail to parse.
|
||||
*/
|
||||
@Test
|
||||
public void testInvalidVersionParse() {
|
||||
|
||||
Assert.assertNull(GuacamoleProtocolVersion.parseVersion("potato"));
|
||||
Assert.assertNull(GuacamoleProtocolVersion.parseVersion("VERSION_"));
|
||||
Assert.assertNull(GuacamoleProtocolVersion.parseVersion("VERSION___"));
|
||||
|
||||
Assert.assertNull(GuacamoleProtocolVersion.parseVersion("VERSION__2_3"));
|
||||
Assert.assertNull(GuacamoleProtocolVersion.parseVersion("VERSION_1__3"));
|
||||
Assert.assertNull(GuacamoleProtocolVersion.parseVersion("VERSION_1_2_"));
|
||||
|
||||
Assert.assertNull(GuacamoleProtocolVersion.parseVersion("VERSION_A_2_3"));
|
||||
Assert.assertNull(GuacamoleProtocolVersion.parseVersion("VERSION_1_B_3"));
|
||||
Assert.assertNull(GuacamoleProtocolVersion.parseVersion("VERSION_1_2_C"));
|
||||
|
||||
Assert.assertNull(GuacamoleProtocolVersion.parseVersion("_1_2_3"));
|
||||
Assert.assertNull(GuacamoleProtocolVersion.parseVersion("version_1_2_3"));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies that the atLeast() function defined by GuacamoleProtocolVersion
|
||||
* behaves as required for a series of three versions which are in strictly
|
||||
* increasing order (a < b < c).
|
||||
*
|
||||
* @param a
|
||||
* The String representation of the version which is known to be the
|
||||
* smaller than versions b and c.
|
||||
*
|
||||
* @param b
|
||||
* The String representation of the version which is known to be
|
||||
* larger than version a but smaller than version c.
|
||||
*
|
||||
* @param c
|
||||
* The String representation of the version which is known to be the
|
||||
* larger than versions a and b.
|
||||
*/
|
||||
private void testVersionCompare(String a, String b, String c) {
|
||||
|
||||
GuacamoleProtocolVersion verA = GuacamoleProtocolVersion.parseVersion(a);
|
||||
GuacamoleProtocolVersion verB = GuacamoleProtocolVersion.parseVersion(b);
|
||||
GuacamoleProtocolVersion verC = GuacamoleProtocolVersion.parseVersion(c);
|
||||
|
||||
Assert.assertTrue(verC.atLeast(verB));
|
||||
Assert.assertTrue(verC.atLeast(verA));
|
||||
Assert.assertTrue(verB.atLeast(verA));
|
||||
|
||||
Assert.assertFalse(verB.atLeast(verC));
|
||||
Assert.assertFalse(verA.atLeast(verC));
|
||||
Assert.assertFalse(verA.atLeast(verB));
|
||||
|
||||
Assert.assertTrue(verA.atLeast(verA));
|
||||
Assert.assertTrue(verB.atLeast(verB));
|
||||
Assert.assertTrue(verC.atLeast(verC));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies that version order comparisons using atLeast() behave as
|
||||
* required.
|
||||
*/
|
||||
@Test
|
||||
public void testVersionCompare() {
|
||||
testVersionCompare("VERSION_0_0_1", "VERSION_0_0_2", "VERSION_0_0_3");
|
||||
testVersionCompare("VERSION_0_1_0", "VERSION_0_2_0", "VERSION_0_3_0");
|
||||
testVersionCompare("VERSION_1_0_0", "VERSION_2_0_0", "VERSION_3_0_0");
|
||||
testVersionCompare("VERSION_1_2_3", "VERSION_1_3_3", "VERSION_2_0_0");
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies that versions can be tested for equality using equals().
|
||||
*/
|
||||
@Test
|
||||
public void testVersionEquals() {
|
||||
|
||||
GuacamoleProtocolVersion version;
|
||||
|
||||
version = GuacamoleProtocolVersion.parseVersion("VERSION_012_102_398");
|
||||
Assert.assertTrue(version.equals(version));
|
||||
Assert.assertTrue(version.equals(new GuacamoleProtocolVersion(12, 102, 398)));
|
||||
Assert.assertFalse(version.equals(new GuacamoleProtocolVersion(12, 102, 399)));
|
||||
Assert.assertFalse(version.equals(new GuacamoleProtocolVersion(12, 103, 398)));
|
||||
Assert.assertFalse(version.equals(new GuacamoleProtocolVersion(11, 102, 398)));
|
||||
|
||||
version = GuacamoleProtocolVersion.parseVersion("VERSION_1_0_0");
|
||||
Assert.assertTrue(version.equals(GuacamoleProtocolVersion.VERSION_1_0_0));
|
||||
Assert.assertFalse(version.equals(GuacamoleProtocolVersion.VERSION_1_1_0));
|
||||
|
||||
version = GuacamoleProtocolVersion.parseVersion("VERSION_1_1_0");
|
||||
Assert.assertTrue(version.equals(GuacamoleProtocolVersion.VERSION_1_1_0));
|
||||
Assert.assertFalse(version.equals(GuacamoleProtocolVersion.VERSION_1_0_0));
|
||||
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user