Beispiel #1
0
        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");
            }
        }
Beispiel #2
0
        public void MultiEntitiesInitPipelines()
        {
            EntitySpider context = new EntitySpider(new Site());

            context.SetIdentity(Guid.NewGuid().ToString("N"));
            context.SetThreadNum(1);
            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());

            context.AddStartUrl("http://baidu.com");
            context.AddEntityType(typeof(Entity13));
            context.AddEntityType(typeof(Entity12));
            context.Run("running-test");

            var entityPipelines = context.EntityPipelines;

            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(2, pipelines.Count);
            EntityPipeline pipeline = (EntityPipeline)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().TableName);

            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");
            }
        }