public void MultiEntitiesInitPipelines() { EntitySpider context = new EntitySpider(new Site()); context.SetThreadNum(1); context.SetIdentity("test-MultiEntitiesInitPipelines"); context.AddEntityPipeline(new MySqlEntityPipeline("Database='test';Data Source=localhost;User ID=root;Password=1qazZAQ!;Port=3306")); context.AddEntityPipeline(new MySqlFileEntityPipeline()); context.AddEntityPipeline(new ConsoleEntityPipeline()); context.AddEntityPipeline(new JsonFileEntityPipeline()); #if !NET_CORE //context.AddEntityPipeline(new MongoDbEntityPipeline("mongo")); #endif context.AddStartUrl("http://a.com"); context.AddEntityType(typeof(Entity13)); context.AddEntityType(typeof(Entity12)); context.Run("running-test"); var entityPipelines = context.EntityPipelines; #if NET_CORE Assert.Equal(4, entityPipelines.Count); #else Assert.Equal(4, entityPipelines.Count); //Assert.Equal(5, entityPipelines.Count); #endif var pipeline1 = (MySqlEntityPipeline)entityPipelines[0]; Assert.Equal("Database='test';Data Source=localhost;User ID=root;Password=1qazZAQ!;Port=3306", pipeline1.ConnectString); Assert.Equal("MySqlFileEntityPipeline", entityPipelines[1].GetType().Name); Assert.Equal("ConsoleEntityPipeline", entityPipelines[2].GetType().Name); Assert.Equal("JsonFileEntityPipeline", entityPipelines[3].GetType().Name); #if !NET_CORE //Assert.Equal("MongoDbEntityPipeline", entityPipelines[4].GetType().Name); //var pipeline2 = (MySqlEntityPipeline)entityPipelines[4]; //Assert.Equal("mongo", pipeline2.ConnectString); #endif var pipelines = context.GetPipelines(); Assert.Equal(1, pipelines.Count); EntityPipeline pipeline = (EntityPipeline)pipelines[0]; entityPipelines = pipeline.GetEntityPipelines(); Assert.Equal(4, entityPipelines.Count); pipeline1 = (MySqlEntityPipeline)entityPipelines[0]; Assert.Equal("db", pipeline1.GetSchema().Database); Assert.Equal("table", pipeline1.GetSchema().TableName); #if !NET_CORE //var pipeline2 = (MongoDbEntityPipeline)entityPipelines[4]; //Assert.Equal("db", pipeline2.GetSchema().Database); //Assert.Equal("table", pipeline2.GetSchema().TableName); #endif using (MySqlConnection conn = new MySqlConnection("Database='mysql';Data Source=localhost;User ID=root;Password=1qazZAQ!;Port=3306")) { conn.Execute($"DROP table db.table"); } }
public void MultiEntitiesInitPipelines() { EntitySpider context = new EntitySpider(new Site()); context.SetIdentity(Guid.NewGuid().ToString("N")); context.SetThreadNum(1); context.AddPipeline(new MySqlEntityPipeline("Database='test';Data Source=localhost;User ID=root;Password=1qazZAQ!;Port=3306")); context.AddPipeline(new MySqlFileEntityPipeline()); context.AddPipeline(new ConsoleEntityPipeline()); context.AddPipeline(new JsonFileEntityPipeline()); context.AddStartUrl("http://baidu.com"); context.AddEntityType(typeof(Entity13)); context.AddEntityType(typeof(Entity12)); context.Run("running-test"); var entityPipelines = context.Pipelines; Assert.AreEqual(4, entityPipelines.Count); var pipeline1 = (MySqlEntityPipeline)entityPipelines[0]; Assert.AreEqual("Database='test';Data Source=localhost;User ID=root;Password=1qazZAQ!;Port=3306", pipeline1.ConnectString); Assert.AreEqual("MySqlFileEntityPipeline", entityPipelines[1].GetType().Name); Assert.AreEqual("ConsoleEntityPipeline", entityPipelines[2].GetType().Name); Assert.AreEqual("JsonFileEntityPipeline", entityPipelines[3].GetType().Name); var pipelines = context.GetPipelines(); Assert.AreEqual(4, pipelines.Count); IEntityPipeline pipeline = (IEntityPipeline)pipelines[0]; //entityPipelines = pipeline.GetEntityPipelines(); //Assert.AreEqual(4, entityPipelines.Count); //pipeline1 = (MySqlEntityPipeline)entityPipelines[0]; //Assert.AreEqual("db", pipeline1.GetSchema().Database); //Assert.AreEqual("table13", pipeline1.GetSchema().Name); using (MySqlConnection conn = new MySqlConnection("Database='mysql';Data Source=localhost;User ID=root;Password=1qazZAQ!;Port=3306")) { conn.Execute($"DROP table db.table12"); conn.Execute($"DROP table db.table13"); } }