72 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
| package tests;
 | |
| 
 | |
| import haxelib.SemVer;
 | |
| 
 | |
| class TestSemVer extends TestBase {
 | |
| 	static function make(major, minor, patch, ?preview, ?previewNum):SemVer {
 | |
| 		return {
 | |
| 			major : major,
 | |
| 			minor : minor,
 | |
| 			patch : patch,
 | |
| 			preview : preview,
 | |
| 			previewNum : previewNum
 | |
| 		};
 | |
| 	}
 | |
| 	public function testToString() {
 | |
| 		assertEquals( "0.1.2", make(0,1,2) );
 | |
| 
 | |
| 		// Release Tags
 | |
| 		assertEquals( "0.1.2-alpha", make(0,1,2,ALPHA) );
 | |
| 		assertEquals( "0.1.2-beta", make(0,1,2,BETA) );
 | |
| 		assertEquals( "0.1.2-rc", make(0,1,2,RC) );
 | |
| 
 | |
| 		// Release Tag Versions
 | |
| 		assertEquals( "0.1.2-alpha.0", make(0,1,2,ALPHA,0) );
 | |
| 		assertEquals( "0.1.2-beta.0", make(0,1,2,BETA,0) );
 | |
| 		assertEquals( "0.1.2-rc.0", make(0,1,2,RC,0) );
 | |
| 
 | |
| 		// Weird input
 | |
| 		assertEquals( "0.1.2", make(0,1,2,null,0) );
 | |
| 
 | |
| 		// Multiple characters
 | |
| 		assertEquals( "100.200.300-rc.400", make(100,200,300,RC,400) );
 | |
| 	}
 | |
| 
 | |
| 	public function testOfString() {
 | |
| 		// Normal
 | |
| 		assertEquals( "0.1.2", (SemVer.ofString("0.1.2").data : SemVer));
 | |
| 		assertEquals( "100.50.200", (SemVer.ofString("100.50.200").data : SemVer));
 | |
| 
 | |
| 		// Release tags
 | |
| 		assertEquals( "0.1.2-alpha", (SemVer.ofString("0.1.2-ALPHA").data : SemVer));
 | |
| 		assertEquals( "0.1.2-alpha", (SemVer.ofString("0.1.2-alpha").data : SemVer));
 | |
| 		assertEquals( "0.1.2-beta", (SemVer.ofString("0.1.2-beta").data : SemVer));
 | |
| 		assertEquals( "0.1.2-rc", (SemVer.ofString("0.1.2-rc").data : SemVer));
 | |
| 		assertEquals( "0.1.2-rc.1", (SemVer.ofString("0.1.2-rc.1").data : SemVer));
 | |
| 	}
 | |
| 
 | |
| 	public function testOfStringInvalid() {
 | |
| 		assertEquals( "invalid", parseInvalid(null) );
 | |
| 		assertEquals( "invalid", parseInvalid("") );
 | |
| 		assertEquals( "invalid", parseInvalid("1") );
 | |
| 		assertEquals( "invalid", parseInvalid("1.1") );
 | |
| 		assertEquals( "invalid", parseInvalid("1.2.a") );
 | |
| 		assertEquals( "invalid", parseInvalid("a.b.c") );
 | |
| 		assertEquals( "invalid", parseInvalid("1.2.3-") );
 | |
| 		assertEquals( "invalid", parseInvalid("1.2.3-rc.") );
 | |
| 		assertEquals( "invalid", parseInvalid("1.2.3--rc.1") );
 | |
| 		assertEquals( "invalid", parseInvalid("1.2.3-othertag") );
 | |
| 		assertEquals( "invalid", parseInvalid("1.2.3-othertag.1") );
 | |
| 		assertEquals( "invalid", parseInvalid("10.050.02"));
 | |
| 		assertEquals( "invalid", parseInvalid("10.50.2-rc.01"));
 | |
| 	}
 | |
| 
 | |
| 	function parseInvalid( str:String ) {
 | |
| 		return try {
 | |
| 			(SemVer.ofString( str ) : String);
 | |
| 		} catch (e:String) {
 | |
| 			"invalid";
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| } |