| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236 |
- //
- // VersionTest.cs - NUnit Test Cases for the System.Version class
- //
- // author:
- // Duco Fijma ([email protected])
- //
- // (C) 2002 Duco Fijma
- //
- using NUnit.Framework;
- using System;
- namespace MonoTests.System
- {
- public class VersionTest : TestCase
- {
- public VersionTest () {}
- public void TestCtors ()
- {
- Version v1;
- bool exception;
-
- /*
- v1 = new Version ();
- AssertEquals ("A1", 0, v1.Major);
- AssertEquals ("A2", 0, v1.Minor);
- AssertEquals ("A3", -1, v1.Build);
- AssertEquals ("A4", -1, v1.Revision);
- */
- v1 = new Version (23, 7);
- AssertEquals ("A5", 23, v1.Major);
- AssertEquals ("A6", 7, v1.Minor);
- AssertEquals ("A7", -1, v1.Build);
- AssertEquals ("A8", -1, v1.Revision);
- v1 = new Version (23, 7, 99);
- AssertEquals ("A9", 23, v1.Major);
- AssertEquals ("A10", 7, v1.Minor);
- AssertEquals ("A11", 99, v1.Build);
- AssertEquals ("A12", -1, v1.Revision);
- v1 = new Version (23, 7, 99, 42);
- AssertEquals ("A13", 23, v1.Major);
- AssertEquals ("A14", 7, v1.Minor);
- AssertEquals ("A15", 99, v1.Build);
- AssertEquals ("A16", 42, v1.Revision);
-
- try {
- v1 = new Version (23, -1);
- exception = false;
- }
- catch (ArgumentOutOfRangeException) {
- exception = true;
- }
- Assert ("A17", exception);
- try {
- v1 = new Version (23, 7, -1);
- exception = false;
- }
- catch (ArgumentOutOfRangeException) {
- exception = true;
- }
- Assert ("A18", exception);
- try {
- v1 = new Version (23, 7, 99, -1);
- exception = false;
- }
- catch (ArgumentOutOfRangeException) {
- exception = true;
- }
- Assert ("A19", exception);
-
- }
- public void TestStringCtor ()
- {
- Version v1;
- bool exception;
-
- v1 = new Version("1.42.79");
- AssertEquals ("A1", 1, v1.Major);
- AssertEquals ("A2", 42, v1.Minor);
- AssertEquals ("A3", 79, v1.Build);
- AssertEquals ("A4", -1, v1.Revision);
-
- try {
- v1 = new Version ("1.42.-79");
- exception = false;
- }
- catch (ArgumentOutOfRangeException) {
- exception = true;
- }
- Assert ("A5", exception);
- try {
- v1 = new Version ("1");
- exception = false;
- }
- catch (ArgumentException) {
- exception = true;
- }
- Assert ("A6", exception);
- try {
- v1 = new Version ("1.2.3.4.5");
- exception = false;
- }
- catch (ArgumentException) {
- exception = true;
- }
- Assert ("A7", exception);
- try {
- v1 = new Version ((string) null);
- exception = false;
- }
- catch (ArgumentNullException) {
- exception = true;
- }
- Assert ("A6", exception);
- }
- public void TestClone ()
- {
- Version v1 = new Version (1, 2, 3, 4);
- Version v2 = (Version) v1.Clone ();
- Assert ("A1", v1.Equals (v2));
- Assert ("A2", !ReferenceEquals (v1, v2));
- }
- public void TestCompareTo ()
- {
- Assert ("A1", new Version (1, 2).CompareTo (new Version (1, 1)) > 0);
- Assert ("A2", new Version (1, 2, 3).CompareTo (new Version (2, 2, 3)) < 0);
- Assert ("A3", new Version (1, 2, 3, 4).CompareTo (new Version (1, 2, 2, 1)) > 0);
- Assert ("A4", new Version (1, 3).CompareTo (new Version (1, 2, 2, 1)) > 0);
- Assert ("A5", new Version (1, 2, 2).CompareTo (new Version (1, 2, 2, 1)) < 0);
- Assert ("A6", new Version (1, 2).CompareTo (new Version (1, 2)) == 0);
- Assert ("A7", new Version (1, 2, 3).CompareTo (new Version (1, 2, 3)) == 0);
- Assert ("A8", new Version (1, 1) < new Version (1, 2));
- Assert ("A9", new Version (1, 2) <= new Version (1, 2));
- Assert ("A10", new Version (1, 2) <= new Version (1, 3));
- Assert ("A11", new Version (1, 2) >= new Version (1, 2));
- Assert ("A12", new Version (1, 3) >= new Version (1, 2));
- Assert ("A13", new Version (1, 3) > new Version (1, 2));
- Version v1 = new Version(1, 2);
- bool exception;
- // LAMESPEC: Docs say this should throw a ArgumentNullException,
- // but it simply works. Seems any version is subsequent to null
- Assert ("A14:", v1.CompareTo (null) > 0);
- try {
- v1.CompareTo ("A string is not a version");
- exception = false;
- }
- catch (ArgumentException) {
- exception = true;
- }
- Assert ("A15", exception);
-
- }
-
- public void TestEquals ()
- {
- Version v1 = new Version (1, 2);
- Version v2 = new Version (1, 2, 3, 4);
- Version v3 = new Version (1, 2, 3, 4);
- AssertEquals ("A1", true, v2.Equals (v3));
- AssertEquals ("A2", true, v2.Equals (v2));
- AssertEquals ("A3", false, v1.Equals (v3));
- AssertEquals ("A4", true, v2 == v3);
- AssertEquals ("A5", true, v2 == v2);
- AssertEquals ("A6", false, v1 == v3);
- AssertEquals ("A7", false, v2.Equals ((Version) null));
- AssertEquals ("A8", false, v2.Equals ("A string"));
-
- }
- public void TestToString ()
- {
- Version v1 = new Version (1,2);
- Version v2 = new Version (1,2,3);
- Version v3 = new Version (1,2,3,4);
-
- AssertEquals ("A1", "1.2", v1.ToString ());
- AssertEquals ("A2", "1.2.3", v2.ToString ());
- AssertEquals ("A3", "1.2.3.4", v3.ToString ());
- AssertEquals ("A4", "" , v3.ToString (0));
- AssertEquals ("A5", "1" , v3.ToString (1));
- AssertEquals ("A6", "1.2" , v3.ToString (2));
- AssertEquals ("A7", "1.2.3" , v3.ToString (3));
- AssertEquals ("A8", "1.2.3.4" , v3.ToString (4));
- bool exception;
- try {
- v2.ToString (4);
- exception = false;
- }
- catch (ArgumentException) {
- exception = true;
- }
- Assert ("A9", exception);
- try {
- v3.ToString (42);
- exception = false;
- }
- catch (ArgumentException) {
- exception = true;
- }
- Assert ("A10", exception);
- }
- }
- }
|