public void Clone() { MsSqlEntityPipeline insertPipeline = new MsSqlEntityPipeline(ConnectString); var newPipeline1 = (MsSqlEntityPipeline)insertPipeline.Clone(); Assert.AreEqual(ConnectString, newPipeline1.ConnectString); Assert.AreEqual(PipelineMode.Insert, newPipeline1.Mode); MsSqlEntityPipeline updatePipeline = new MsSqlEntityPipeline(ConnectString, PipelineMode.Update); Assert.AreEqual(ConnectString, updatePipeline.ConnectString); Assert.AreEqual(PipelineMode.Update, updatePipeline.Mode); }
public void DefineUpdateEntity() { MsSqlEntityPipeline insertPipeline = new MsSqlEntityPipeline(ConnectString, PipelineMode.Update); IEntityPipeline pipeline; try { insertPipeline.InitEntity(EntitySpider.GenerateEntityMetaData(typeof(UpdateEntity1).GetTypeInfo())); throw new SpiderException("TEST FAILED."); } catch (SpiderException e) { Assert.AreEqual("Columns set as primary is not a property of your entity.", e.Message); } try { insertPipeline.InitEntity(EntitySpider.GenerateEntityMetaData(typeof(UpdateEntity2).GetTypeInfo())); throw new SpiderException("TEST FAILED."); } catch (SpiderException e) { Assert.AreEqual("Columns set as update is not a property of your entity.", e.Message); } try { insertPipeline.InitEntity(EntitySpider.GenerateEntityMetaData(typeof(UpdateEntity3).GetTypeInfo())); throw new SpiderException("TEST FAILED."); } catch (SpiderException e) { Assert.AreEqual("There is no column need update.", e.Message); } insertPipeline.InitEntity(EntitySpider.GenerateEntityMetaData(typeof(UpdateEntity4).GetTypeInfo())); Assert.AreEqual(1, insertPipeline.GetUpdateColumns().Count); Assert.AreEqual("value", insertPipeline.GetUpdateColumns().First().Name); MsSqlEntityPipeline insertPipeline2 = new MsSqlEntityPipeline(ConnectString, PipelineMode.Update); insertPipeline2.InitEntity(EntitySpider.GenerateEntityMetaData(typeof(UpdateEntity5).GetTypeInfo())); Assert.AreEqual(1, insertPipeline2.GetUpdateColumns().Count); Assert.AreEqual("value", insertPipeline2.GetUpdateColumns().First().Name); }
public void UpdateWhenUnionPrimary() { ClearDb(); using (SqlConnection conn = new SqlConnection(ConnectString)) { ISpider spider = new DefaultSpider("test", new Site()); MsSqlEntityPipeline insertPipeline = new MsSqlEntityPipeline(ConnectString); insertPipeline.InitEntity(EntitySpider.GenerateEntityMetaData(typeof(Product2).GetTypeInfo())); insertPipeline.InitPipeline(spider); JObject data1 = new JObject { { "sku", "110" }, { "category1", "4C" }, { "category", "3C" }, { "url", "http://jd.com/110" }, { "cdate", "2016-08-13" } }; JObject data2 = new JObject { { "sku", "111" }, { "category1", "4C" }, { "category", "3C" }, { "url", "http://jd.com/111" }, { "cdate", "2016-08-13" } }; insertPipeline.Process(new List <JObject> { data1, data2 }); MsSqlEntityPipeline updatePipeline = new MsSqlEntityPipeline(ConnectString, PipelineMode.Update); updatePipeline.InitEntity(EntitySpider.GenerateEntityMetaData(typeof(Product2).GetTypeInfo())); updatePipeline.InitPipeline(spider); JObject data3 = new JObject { { "sku", "110" }, { "category1", "4C" }, { "category", "AAAA" }, { "url", "http://jd.com/110" }, { "cdate", "2016-08-13" } }; updatePipeline.Process(new List <JObject> { data3 }); var list = conn.Query <Product2>($"use test;select * from sku2_{DateTime.Now.ToString("yyyy_MM_dd")}").ToList(); Assert.AreEqual(2, list.Count); Assert.AreEqual("110", list[0].Sku); Assert.AreEqual("AAAA", list[0].Category); } ClearDb(); }
public void Insert() { ClearDb(); using (SqlConnection conn = new SqlConnection(ConnectString)) { ISpider spider = new DefaultSpider("test", new Site()); MsSqlEntityPipeline insertPipeline = new MsSqlEntityPipeline(ConnectString); insertPipeline.InitEntity(EntitySpider.GenerateEntityMetaData(typeof(Product).GetTypeInfo())); insertPipeline.InitPipeline(spider); // Common data JObject data1 = new JObject { { "sku", "110" }, { "category", "3C" }, { "url", "http://jd.com/110" }, { "cdate", "2016-08-13" } }; JObject data2 = new JObject { { "sku", "111" }, { "category", "3C" }, { "url", "http://jd.com/111" }, { "cdate", "2016-08-13" } }; // Value is null JObject data3 = new JObject { { "sku", "112" }, { "category", null }, { "url", "http://jd.com/111" }, { "cdate", "2016-08-13" } }; insertPipeline.Process(new List <JObject> { data1, data2, data3 }); var list = conn.Query <Product>($"use test;select * from sku_{DateTime.Now.ToString("yyyy_MM_dd")}").ToList(); Assert.AreEqual(3, list.Count); Assert.AreEqual("110", list[0].Sku); Assert.AreEqual("111", list[1].Sku); Assert.AreEqual(null, list[2].Category); } ClearDb(); }