Prechádzať zdrojové kódy

Do not setup/test databases

Caue Waneck 8 rokov pred
rodič
commit
73de52b87d
3 zmenil súbory, kde vykonal 1 pridanie a 572 odobranie
  1. 0 11
      .travis.yml
  2. 1 15
      tests/unit/src/unit/TestMain.hx
  3. 0 546
      tests/unit/src/unit/TestSpod.hx

+ 0 - 11
.travis.yml

@@ -50,11 +50,6 @@ install_linux: &install_linux
   - make
   - sudo make install
   - popd
-  # Setup database
-  - travis_retry sudo apt-get install mysql-server-5.6 -y
-  - mysql -u root -e "create user travis@localhost identified by '';"
-  - mysql -u root -e "create database haxe_test;"
-  - mysql -u root -e "grant all on haxe_test.* to travis@localhost;"
   # Setup JDK
   - jdk_switcher use oraclejdk7
   - java -version
@@ -73,12 +68,6 @@ install_osx: &install_osx
   - travis_retry brew install ocaml camlp4;
   # Install neko
   - travis_retry brew install neko --HEAD;
-  # Setup database
-  - travis_retry brew install mysql
-  - mysql.server start
-  - mysql -u root -e "create user if not exists travis@localhost identified by '';"
-  - mysql -u root -e "create database haxe_test;"
-  - mysql -u root -e "grant all on haxe_test.* to travis@localhost;"
   # Build haxe
   - make package_src -s
   - make -s

+ 1 - 15
tests/unit/src/unit/TestMain.hx

@@ -102,20 +102,6 @@ class TestMain {
 		}
 		#end
 
-		// SPOD tests
-		#if ( (neko || (php && (travis || appveyor || php_sqlite)) || java || cpp || (cs && (travis || appveyor))) && !macro && !interp)
-		#if ( (travis || appveyor) && !(cpp || cs) )
-		classes.push(new TestSpod(sys.db.Mysql.connect({
-			host : "127.0.0.1",
-			user : "travis",
-			pass : "",
-			port : 3306,
-			database : "haxe_test" })));
-		#end
-		if (verbose)
-			logVerbose("Setup sqlite");
-		classes.push(new TestSpod(sys.db.Sqlite.open("db.db3")));
-		#end
 		TestIssues.addIssueClasses("src/unit/issues", "unit.issues");
 		TestIssues.addIssueClasses("src/unit/hxcpp_issues", "unit.hxcpp_issues");
 		var current = null;
@@ -157,4 +143,4 @@ class TestMain {
 		}
 		#end
 	}
-}
+}

+ 0 - 546
tests/unit/src/unit/TestSpod.hx

@@ -1,546 +0,0 @@
-package unit;
-import sys.db.*;
-import sys.db.Object;
-import sys.db.Types;
-import haxe.io.Bytes;
-import haxe.EnumFlags;
-import sys.db.Connection;
-import sys.db.Manager;
-import sys.db.Sqlite;
-import sys.db.TableCreate;
-import sys.FileSystem;
-import unit.MySpodClass;
-
-using Lambda;
-
-class TestSpod extends Test
-{
-	private var cnx:Connection;
-	public function new(cnx:Connection)
-	{
-		super();
-		this.cnx = cnx;
-		Manager.cnx = cnx;
-		try cnx.request('DROP TABLE MySpodClass') catch(e:Dynamic) {}
-		try cnx.request('DROP TABLE OtherSpodClass') catch(e:Dynamic) {}
-		try cnx.request('DROP TABLE NullableSpodClass') catch(e:Dynamic) {}
-		try cnx.request('DROP TABLE ClassWithStringId') catch(e:Dynamic) {}
-		try cnx.request('DROP TABLE ClassWithStringIdRef') catch(e:Dynamic) {}
-		try cnx.request('DROP TABLE IssueC3828') catch(e:Dynamic) {}
-		try cnx.request('DROP TABLE Issue6041Table') catch(e:Dynamic) {}
-		TableCreate.create(MySpodClass.manager);
-		TableCreate.create(OtherSpodClass.manager);
-		TableCreate.create(NullableSpodClass.manager);
-		TableCreate.create(ClassWithStringId.manager);
-		TableCreate.create(ClassWithStringIdRef.manager);
-		TableCreate.create(IssueC3828.manager);
-		TableCreate.create(Issue6041Table.manager);
-	}
-
-	private function setManager()
-	{
-		Manager.initialize();
-		Manager.cnx = cnx;
-		Manager.cleanup();
-	}
-
-	function getDefaultClass()
-	{
-		var scls = new MySpodClass();
-		scls.int = 1;
-		scls.double = 2.0;
-		scls.boolean = true;
-		scls.string = "some string";
-		scls.date = new Date(2012, 7, 30, 0, 0, 0);
-		scls.abstractType = "other string";
-
-		var bytes = Bytes.ofString("\x01\n\r'\x02");
-		scls.binary = bytes;
-		scls.enumFlags = EnumFlags.ofInt(0);
-		scls.enumFlags.set(FirstValue);
-		scls.enumFlags.set(ThirdValue);
-		scls.bytes = Bytes.ofString("\000a");
-
-		scls.data = [new ComplexClass( { name:"test", array:["this", "is", "a", "test"] } )];
-		scls.anEnum = SecondValue;
-
-		return scls;
-	}
-
-	function getDefaultNull() {
-		var scls = new NullableSpodClass();
-		scls.int = 1;
-		scls.double = 2.0;
-		scls.boolean = true;
-		scls.string = "some string";
-		scls.date = new Date(2012, 7, 30, 0, 0, 0);
-		scls.abstractType = "other string";
-
-		var bytes = Bytes.ofString("\x01\n\r'\x02");
-		scls.binary = bytes;
-		scls.enumFlags = EnumFlags.ofInt(0);
-		scls.enumFlags.set(FirstValue);
-		scls.enumFlags.set(ThirdValue);
-
-		scls.data = [new ComplexClass( { name:"test", array:["this", "is", "a", "test"] } )];
-		scls.anEnum = SecondValue;
-		return scls;
-	}
-
-	public function testNull() {
-		setManager();
-		var n1 = getDefaultNull();
-		n1.insert();
-		var n2 = new NullableSpodClass();
-		n2.insert();
-		var id = n2.theId;
-
-		n1 = null; n2 = null;
-		Manager.cleanup();
-
-		var nullVal = getNull();
-		inline function checkReq(lst:List<NullableSpodClass>, ?nres=1, ?pos:haxe.PosInfos) {
-			eq(lst.length,nres, pos);
-			if (lst.length == 1) {
-				eq(lst.first().theId, id, pos);
-			}
-		}
-
-		checkReq(NullableSpodClass.manager.search($relationNullable == null), 2);
-		checkReq(NullableSpodClass.manager.search($data == null));
-		checkReq(NullableSpodClass.manager.search($anEnum == null));
-
-		checkReq(NullableSpodClass.manager.search($int == null));
-		checkReq(NullableSpodClass.manager.search($double == null));
-		checkReq(NullableSpodClass.manager.search($boolean == null));
-		checkReq(NullableSpodClass.manager.search($string == null));
-		checkReq(NullableSpodClass.manager.search($date == null));
-		checkReq(NullableSpodClass.manager.search($binary == null));
-		checkReq(NullableSpodClass.manager.search($abstractType == null));
-
-		checkReq(NullableSpodClass.manager.search($enumFlags == null));
-
-
-		var relationNullable:Null<OtherSpodClass> = getNull();
-		checkReq(NullableSpodClass.manager.search($relationNullable == relationNullable), 2);
-		var data:Null<Bytes> = getNull();
-		checkReq(NullableSpodClass.manager.search($data == data));
-		var anEnum:Null<SEnum<SpodEnum>> = getNull();
-		checkReq(NullableSpodClass.manager.search($anEnum == anEnum));
-
-		var int:Null<Int> = getNull();
-		checkReq(NullableSpodClass.manager.search($int == int));
-		var double:Null<Float> = getNull();
-		checkReq(NullableSpodClass.manager.search($double == double));
-		var boolean:Null<Bool> = getNull();
-		checkReq(NullableSpodClass.manager.search($boolean == boolean));
-		var string:SNull<SString<255>> = getNull();
-		checkReq(NullableSpodClass.manager.search($string == string));
-		var date:SNull<SDateTime> = getNull();
-		checkReq(NullableSpodClass.manager.search($date == date));
-		var binary:SNull<SBinary> = getNull();
-		checkReq(NullableSpodClass.manager.search($binary == binary));
-		var abstractType:SNull<String> = getNull();
-		checkReq(NullableSpodClass.manager.search($abstractType == abstractType));
-
-		for (val in NullableSpodClass.manager.all()) {
-			val.delete();
-		}
-	}
-
-	private function getNull<T>():Null<T> {
-		return null;
-	}
-
-	public function testIssue3828()
-	{
-		setManager();
-		var u1 = new IssueC3828();
-		u1.insert();
-		var u2 = new IssueC3828();
-		u2.refUser = u1;
-		u2.insert();
-		var u1id = u1.id, u2id = u2.id;
-		u1 = null; u2 = null;
-		Manager.cleanup();
-
-		var u1 = IssueC3828.manager.get(u1id);
-		var u2 = IssueC3828.manager.search($refUser == u1).first();
-		eq(u1.id, u1id);
-		eq(u2.id, u2id);
-	}
-
-	public function testIssue6041()
-	{
-		setManager();
-		var item = new Issue6041Table();
-		item.insert();
-		var result = cnx.request('SELECT * FROM Issue6041Table LIMIT 1');
-		var amount = 1;
-		for(row in result) {
-			if(--amount < 0) throw "Invalid amount of rows in result";
-		}
-		eq(amount, 0);
-	}
-
-	public function testStringIdRel()
-	{
-		setManager();
-		var s = new ClassWithStringId();
-		s.name = "first";
-		s.field = 1;
-		s.insert();
-		var v1 = new ClassWithStringIdRef();
-		v1.ref = s;
-		v1.insert();
-		var v2 = new ClassWithStringIdRef();
-		v2.ref = s;
-		v2.insert();
-
-		s = new ClassWithStringId();
-		s.name = "second";
-		s.field = 2;
-		s.insert();
-		v1 = new ClassWithStringIdRef();
-		v1.ref = s;
-		v1.insert();
-		s = null; v1 = null; v2 = null;
-		Manager.cleanup();
-
-		var first = ClassWithStringId.manager.search($name == "first");
-		eq(first.length,1);
-		var first = first.first();
-		eq(first.field,1);
-		var frel = ClassWithStringIdRef.manager.search($ref == first);
-		eq(frel.length,2);
-		for (rel in frel)
-			eq(rel.ref, first);
-		var frel2 = ClassWithStringIdRef.manager.search($ref_id == "first");
-		eq(frel2.length,2);
-		for (rel in frel2)
-			eq(rel.ref, first);
-
-		var second = ClassWithStringId.manager.search($name == "second");
-		eq(second.length,1);
-		var second = second.first();
-		eq(second.field,2);
-		var srel = ClassWithStringIdRef.manager.search($ref == second);
-		eq(srel.length,1);
-		for (rel in srel)
-			eq(rel.ref, second);
-
-		eq(frel.array().indexOf(srel.first()), -1);
-		second.delete();
-		for (r in srel) r.delete();
-		first.delete();
-		for (r in frel) r.delete();
-	}
-
-	public function testEnum()
-	{
-		setManager();
-		var c1 = new OtherSpodClass("first spod");
-		c1.insert();
-		var c2 = new OtherSpodClass("second spod");
-		c2.insert();
-
-		var scls = getDefaultClass();
-		var scls1 = scls;
-		scls.relation = c1;
-		scls.insert();
-		var id1 = scls.theId;
-		scls = getDefaultClass();
-		scls.relation = c1;
-		scls.insert();
-
-		scls1.next = scls;
-		scls1.update();
-
-		var id2 = scls.theId;
-		scls = getDefaultClass();
-		scls.relation = c1;
-		scls.next = scls1;
-		scls.anEnum = FirstValue;
-		scls.insert();
-		var id3 = scls.theId;
-		scls = null;
-
-		Manager.cleanup();
-		var r1s = [ for (c in MySpodClass.manager.search($anEnum == SecondValue,{orderBy:theId})) c.theId ];
-		eq([id1,id2].join(','),r1s.join(','));
-		var r2s = MySpodClass.manager.search($anEnum == FirstValue);
-		eq(r2s.length,1);
-		eq(r2s.first().theId,id3);
-		eq(r2s.first().next.theId,id1);
-		eq(r2s.first().next.next.theId,id2);
-
-		var fv = getSecond();
-		var r1s = [ for (c in MySpodClass.manager.search($anEnum == fv,{orderBy:theId})) c.theId ];
-		eq([id1,id2].join(','),r1s.join(','));
-		var r2s = MySpodClass.manager.search($anEnum == getFirst());
-		eq(r2s.length,1);
-		eq(r2s.first().theId,id3);
-
-		var ids = [id1,id2,id3];
-		var s = [ for (c in MySpodClass.manager.search( $anEnum == SecondValue || $theId in ids )) c.theId ];
-		s.sort(Reflect.compare);
-		eq([id1,id2,id3].join(','),s.join(','));
-
-		r2s.first().delete();
-		for (v in MySpodClass.manager.search($anEnum == fv)) v.delete();
-	}
-
-	public function getFirst()
-	{
-		return FirstValue;
-	}
-
-	public function getSecond()
-	{
-		return SecondValue;
-	}
-
-	public function testUpdate()
-	{
-		setManager();
-		var c1 = new OtherSpodClass("first spod");
-		c1.insert();
-		var c2 = new OtherSpodClass("second spod");
-		c2.insert();
-		var scls = getDefaultClass();
-		scls.relation = c1;
-		scls.relationNullable = c2;
-		scls.insert();
-
-		var id = scls.theId;
-
-		//if no change made, update should return nothing
-		eq( untyped MySpodClass.manager.getUpdateStatement( scls ), null );
-		Manager.cleanup();
-		scls = MySpodClass.manager.get(id);
-		eq( untyped MySpodClass.manager.getUpdateStatement( scls ), null );
-		scls.delete();
-
-		//try now with null SData and null relation
-		var scls = new NullableSpodClass();
-		scls.insert();
-
-		var id = scls.theId;
-
-		//if no change made, update should return nothing
-		eq( untyped NullableSpodClass.manager.getUpdateStatement( scls ), null );
-		Manager.cleanup();
-		scls = NullableSpodClass.manager.get(id);
-		eq( untyped NullableSpodClass.manager.getUpdateStatement( scls ), null );
-		eq(scls.data,null);
-		eq(scls.relationNullable,null);
-		eq(scls.abstractType,null);
-		eq(scls.anEnum,null);
-		scls.delete();
-
-		//same thing with explicit null set
-		var scls = new NullableSpodClass();
-		scls.data = null;
-		scls.relationNullable = null;
-		scls.abstractType = null;
-		scls.anEnum = null;
-		scls.insert();
-
-		var id = scls.theId;
-
-		//if no change made, update should return nothing
-		eq( untyped NullableSpodClass.manager.getUpdateStatement( scls ), null );
-		Manager.cleanup();
-		scls = NullableSpodClass.manager.get(id);
-		eq( untyped NullableSpodClass.manager.getUpdateStatement( scls ), null );
-		eq(scls.data,null);
-		eq(scls.relationNullable,null);
-		eq(scls.abstractType,null);
-		eq(scls.anEnum,null);
-		Manager.cleanup();
-
-		scls = new NullableSpodClass();
-		scls.theId = id;
-		t( untyped NullableSpodClass.manager.getUpdateStatement( scls ) != null );
-
-		scls.delete();
-	}
-
-	public function testSpodTypes()
-	{
-		setManager();
-		var c1 = new OtherSpodClass("first spod");
-		c1.insert();
-		var c2 = new OtherSpodClass("second spod");
-		c2.insert();
-
-		var scls = getDefaultClass();
-
-		scls.relation = c1;
-		scls.relationNullable = c2;
-		scls.insert();
-
-		//after inserting, id must be filled
-		t(scls.theId != 0 && scls.theId != null,pos());
-		var theid = scls.theId;
-
-		c1 = c2 = null;
-		Manager.cleanup();
-
-		var cls1 = MySpodClass.manager.get(theid);
-		t(cls1 != null,pos());
-		//after Manager.cleanup(), the instances should be different
-		f(cls1 == scls,pos());
-		scls = null;
-
-		t((cls1.int is Int),pos());
-		eq(cls1.int, 1,pos());
-		t((cls1.double is Float),pos());
-		eq(cls1.double, 2.0,pos());
-		t((cls1.boolean is Bool),pos());
-		eq(cls1.boolean, true,pos());
-		t((cls1.string is String),pos());
-		eq(cls1.string, "some string",pos());
-		t((cls1.abstractType is String),pos());
-		eq(cls1.abstractType.get(), "other string",pos());
-		t(cls1.date != null,pos());
-		t((cls1.date is Date),pos());
-		eq(cls1.date.getTime(), new Date(2012, 7, 30, 0, 0, 0).getTime(),pos());
-
-		t((cls1.binary is Bytes),pos());
-		eq(cls1.binary.compare(Bytes.ofString("\x01\n\r'\x02")), 0,pos());
-		t(cls1.enumFlags.has(FirstValue),pos());
-		f(cls1.enumFlags.has(SecondValue),pos());
-		t(cls1.enumFlags.has(ThirdValue),pos());
-
-		t((cls1.data is Array),pos());
-		t((cls1.data[0] is ComplexClass),pos());
-
-		eq(cls1.data[0].val.name, "test",pos());
-		eq(cls1.data[0].val.array.length, 4,pos());
-		eq(cls1.data[0].val.array[1], "is",pos());
-
-		eq(cls1.relation.name, "first spod",pos());
-		eq(cls1.relationNullable.name, "second spod",pos());
-
-		eq(cls1.anEnum, SecondValue,pos());
-		t((cls1.anEnum is SpodEnum),pos());
-
-		eq("\000a", cls1.bytes.toString());
-
-		eq(cls1, MySpodClass.manager.select($anEnum == SecondValue),pos());
-
-		//test create a new class
-		var scls = getDefaultClass();
-
-		c1 = new OtherSpodClass("third spod");
-		c1.insert();
-
-		scls.relation = c1;
-		scls.insert();
-
-		scls = cls1 = null;
-		Manager.cleanup();
-
-		eq(2, MySpodClass.manager.all().length,pos());
-		var req = MySpodClass.manager.search({ relation: OtherSpodClass.manager.select({ name:"third spod"} ) });
-		eq(req.length, 1,pos());
-		scls = req.first();
-
-		scls.relation.name = "Test";
-		scls.relation.update();
-
-		eq(OtherSpodClass.manager.select({ name:"third spod" }), null,pos());
-
-		for (c in MySpodClass.manager.all())
-			c.delete();
-		for (c in OtherSpodClass.manager.all())
-			c.delete();
-
-		//issue #3598
-		var inexistent = MySpodClass.manager.get(1000,false);
-		eq(inexistent,null);
-	}
-
-	public function testDateQuery()
-	{
-		setManager();
-		var other1 = new OtherSpodClass("required field");
-		other1.insert();
-
-		var now = Date.now();
-		var c1 = getDefaultClass();
-		c1.relation = other1;
-		c1.date = now;
-		c1.insert();
-
-		var c2 = getDefaultClass();
-		c2.relation = other1;
-		c2.date = DateTools.delta(now, DateTools.hours(1));
-		c2.insert();
-
-		var q = MySpodClass.manager.search($date > now);
-		eq(q.length, 1,pos());
-		eq(q.first(), c2,pos());
-
-		q = MySpodClass.manager.search($date == now);
-		eq(q.length, 1,pos());
-		eq(q.first(), c1,pos());
-
-		q = MySpodClass.manager.search($date >= now);
-		eq(q.length, 2,pos());
-		eq(q.first(), c1,pos());
-
-		q = MySpodClass.manager.search($date >= DateTools.delta(now, DateTools.hours(2)));
-		eq(q.length, 0,pos());
-		eq(q.first(), null,pos());
-
-		c1.delete();
-		c2.delete();
-		other1.delete();
-	}
-
-	public function testData()
-	{
-		setManager();
-		var other1 = new OtherSpodClass("required field");
-		other1.insert();
-
-		var c1 = getDefaultClass();
-		c1.relation = other1;
-		c1.insert();
-
-		eq(c1.data.length,1,pos());
-		c1.data.pop();
-		c1.update();
-
-		Manager.cleanup();
-		c1 = null;
-
-		c1 = MySpodClass.manager.select($relation == other1);
-		eq(c1.data.length, 0,pos());
-		c1.data.push(new ComplexClass({ name: "test1", array:["complex","field"] }));
-		c1.data.push(null);
-		eq(c1.data.length, 2,pos());
-		c1.update();
-
-		Manager.cleanup();
-		c1 = null;
-
-		c1 = MySpodClass.manager.select($relation == other1);
-		eq(c1.data.length,2,pos());
-		eq(c1.data[0].val.name, "test1",pos());
-		eq(c1.data[0].val.array.length, 2,pos());
-		eq(c1.data[0].val.array[0], "complex",pos());
-		eq(c1.data[1], null,pos());
-
-		c1.delete();
-		other1.delete();
-	}
-
-	private function pos(?p:haxe.PosInfos):haxe.PosInfos
-	{
-		p.fileName = p.fileName + "(" + cnx.dbName()  +")";
-		return p;
-	}
-}