public void GuidLoadsDetailsOnRetrieve() { using (new MunqContext()) using (new DbTestContext<SerenityDbScript>()) { using (var connection = SqlConnections.NewFor<GuidMasterRow>()) { var master1 = Guid.NewGuid(); connection.Insert(new GuidMasterRow { ID = master1, Name = "Master1" }); var master2 = Guid.NewGuid(); connection.Insert(new GuidMasterRow { ID = master2, Name = "Master2" }); var master3 = Guid.NewGuid(); connection.Insert(new GuidMasterRow { ID = master3, Name = "Master3" }); var detail11 = Guid.NewGuid(); connection.Insert(new GuidDetailRow { DetailID = detail11, MasterID = master1, ProductID = 1, Quantity = 5 }); var guids = new Guid[] { Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid() }; Array.Sort(guids); var detail31 = guids[0]; connection.Insert(new GuidDetailRow { DetailID = detail31, MasterID = master3, ProductID = 1, Quantity = 7 }); var detail32 = guids[1]; connection.Insert(new GuidDetailRow { DetailID = detail32, MasterID = master3, ProductID = 3, Quantity = 10 }); var detail33 = guids[2]; connection.Insert(new GuidDetailRow { DetailID = detail33, MasterID = master3, ProductID = 3, Quantity = 12 }); var result1 = new RetrieveRequestHandler<GuidMasterRow>().Process(connection, new RetrieveRequest { EntityId = master1 }); Assert.NotNull(result1.Entity.DetailList); Assert.Equal(1, result1.Entity.DetailList.Count); var result11 = result1.Entity.DetailList[0]; Assert.Equal(master1, result11.MasterID); Assert.Equal(detail11, result11.DetailID); Assert.Equal(1, result11.ProductID); Assert.Equal(5, result11.Quantity); var result2 = new RetrieveRequestHandler<GuidMasterRow>().Process(connection, new RetrieveRequest { EntityId = master2 }); Assert.NotNull(result2.Entity.DetailList); Assert.Equal(0, result2.Entity.DetailList.Count); var result3 = new RetrieveRequestHandler<GuidMasterRow>().Process(connection, new RetrieveRequest { EntityId = master3 }); Assert.NotNull(result3.Entity.DetailList); Assert.Equal(3, result3.Entity.DetailList.Count); result3.Entity.DetailList.Sort((x, y) => x.DetailID.Value.CompareTo(y.DetailID.Value)); var result31 = result3.Entity.DetailList[0]; Assert.Equal(master3, result31.MasterID); Assert.Equal(detail31, result31.DetailID); Assert.Equal(1, result31.ProductID); Assert.Equal(7, result31.Quantity); var result32 = result3.Entity.DetailList[1]; Assert.Equal(master3, result32.MasterID); Assert.Equal(detail32, result32.DetailID); Assert.Equal(3, result32.ProductID); Assert.Equal(10, result32.Quantity); var result33 = result3.Entity.DetailList[2]; Assert.Equal(master3, result33.MasterID); Assert.Equal(detail33, result33.DetailID); Assert.Equal(3, result33.ProductID); Assert.Equal(12, result33.Quantity); } } }
public void GuidLoadsDetailsOnRetrieve() { using (new MunqContext()) using (new DbTestContext <SerenityDbScript>()) { using (var connection = SqlConnections.NewFor <GuidMasterRow>()) { var master1 = Guid.NewGuid(); connection.Insert(new GuidMasterRow { ID = master1, Name = "Master1" }); var master2 = Guid.NewGuid(); connection.Insert(new GuidMasterRow { ID = master2, Name = "Master2" }); var master3 = Guid.NewGuid(); connection.Insert(new GuidMasterRow { ID = master3, Name = "Master3" }); var detail11 = Guid.NewGuid(); connection.Insert(new GuidDetailRow { DetailID = detail11, MasterID = master1, ProductID = 1, Quantity = 5 }); var guids = new Guid[] { Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid() }; Array.Sort(guids); var detail31 = guids[0]; connection.Insert(new GuidDetailRow { DetailID = detail31, MasterID = master3, ProductID = 1, Quantity = 7 }); var detail32 = guids[1]; connection.Insert(new GuidDetailRow { DetailID = detail32, MasterID = master3, ProductID = 3, Quantity = 10 }); var detail33 = guids[2]; connection.Insert(new GuidDetailRow { DetailID = detail33, MasterID = master3, ProductID = 3, Quantity = 12 }); var result1 = new RetrieveRequestHandler <GuidMasterRow>().Process(connection, new RetrieveRequest { EntityId = master1 }); Assert.NotNull(result1.Entity.DetailList); Assert.Equal(1, result1.Entity.DetailList.Count); var result11 = result1.Entity.DetailList[0]; Assert.Equal(master1, result11.MasterID); Assert.Equal(detail11, result11.DetailID); Assert.Equal(1, result11.ProductID); Assert.Equal(5, result11.Quantity); var result2 = new RetrieveRequestHandler <GuidMasterRow>().Process(connection, new RetrieveRequest { EntityId = master2 }); Assert.NotNull(result2.Entity.DetailList); Assert.Equal(0, result2.Entity.DetailList.Count); var result3 = new RetrieveRequestHandler <GuidMasterRow>().Process(connection, new RetrieveRequest { EntityId = master3 }); Assert.NotNull(result3.Entity.DetailList); Assert.Equal(3, result3.Entity.DetailList.Count); result3.Entity.DetailList.Sort((x, y) => x.DetailID.Value.CompareTo(y.DetailID.Value)); var result31 = result3.Entity.DetailList[0]; Assert.Equal(master3, result31.MasterID); Assert.Equal(detail31, result31.DetailID); Assert.Equal(1, result31.ProductID); Assert.Equal(7, result31.Quantity); var result32 = result3.Entity.DetailList[1]; Assert.Equal(master3, result32.MasterID); Assert.Equal(detail32, result32.DetailID); Assert.Equal(3, result32.ProductID); Assert.Equal(10, result32.Quantity); var result33 = result3.Entity.DetailList[2]; Assert.Equal(master3, result33.MasterID); Assert.Equal(detail33, result33.DetailID); Assert.Equal(3, result33.ProductID); Assert.Equal(12, result33.Quantity); } } }
public void LoadsDetailsOnRetrieve() { using (new DbTestContext <SerenityDbScript>()) { using (var connection = SqlConnections.NewFor <Int32MasterRow>()) { var master1 = (int)connection.InsertAndGetID(new Int32MasterRow { Name = "Master1" }); var master2 = (int)connection.InsertAndGetID(new Int32MasterRow { Name = "Master2" }); var master3 = (int)connection.InsertAndGetID(new Int32MasterRow { Name = "Master3" }); var detail11 = (int)connection.InsertAndGetID(new Int32DetailRow { MasterID = master1, ProductID = 1, Quantity = 5 }); var detail31 = (int)connection.InsertAndGetID(new Int32DetailRow { MasterID = master3, ProductID = 1, Quantity = 7 }); var detail32 = (int)connection.InsertAndGetID(new Int32DetailRow { MasterID = master3, ProductID = 3, Quantity = 10 }); var detail33 = (int)connection.InsertAndGetID(new Int32DetailRow { MasterID = master3, ProductID = 3, Quantity = 12 }); var result1 = new RetrieveRequestHandler <Int32MasterRow>().Process(connection, new RetrieveRequest { EntityId = master1 }); Assert.NotNull(result1.Entity.DetailList); Assert.StrictEqual(1, result1.Entity.DetailList.Count); var result11 = result1.Entity.DetailList[0]; Assert.Equal(master1, result11.MasterID); Assert.Equal(detail11, result11.DetailID); Assert.Equal(1, result11.ProductID); Assert.Equal(5, result11.Quantity); var result2 = new RetrieveRequestHandler <Int32MasterRow>().Process(connection, new RetrieveRequest { EntityId = master2 }); Assert.NotNull(result2.Entity.DetailList); Assert.StrictEqual(0, result2.Entity.DetailList.Count); var result3 = new RetrieveRequestHandler <Int32MasterRow>().Process(connection, new RetrieveRequest { EntityId = master3 }); Assert.NotNull(result3.Entity.DetailList); Assert.Equal(3, result3.Entity.DetailList.Count); result3.Entity.DetailList.Sort((x, y) => (x.DetailID ?? 0).CompareTo(y.DetailID ?? 0)); var result31 = result3.Entity.DetailList[0]; Assert.Equal(master3, result31.MasterID); Assert.Equal(detail31, result31.DetailID); Assert.Equal(1, result31.ProductID); Assert.Equal(7, result31.Quantity); var result32 = result3.Entity.DetailList[1]; Assert.Equal(master3, result32.MasterID); Assert.Equal(detail32, result32.DetailID); Assert.Equal(3, result32.ProductID); Assert.Equal(10, result32.Quantity); var result33 = result3.Entity.DetailList[2]; Assert.Equal(master3, result33.MasterID); Assert.Equal(detail33, result33.DetailID); Assert.Equal(3, result33.ProductID); Assert.Equal(12, result33.Quantity); } } }
public void LoadsDetailsOnRetrieve() { using (new DbTestContext<SerenityDbScript>()) { using (var connection = SqlConnections.NewFor<Int32MasterRow>()) { var master1 = (int)connection.InsertAndGetID(new Int32MasterRow { Name = "Master1" }); var master2 = (int)connection.InsertAndGetID(new Int32MasterRow { Name = "Master2" }); var master3 = (int)connection.InsertAndGetID(new Int32MasterRow { Name = "Master3" }); var detail11 = (int)connection.InsertAndGetID(new Int32DetailRow { MasterID = master1, ProductID = 1, Quantity = 5 }); var detail31 = (int)connection.InsertAndGetID(new Int32DetailRow { MasterID = master3, ProductID = 1, Quantity = 7 }); var detail32 = (int)connection.InsertAndGetID(new Int32DetailRow { MasterID = master3, ProductID = 3, Quantity = 10 }); var detail33 = (int)connection.InsertAndGetID(new Int32DetailRow { MasterID = master3, ProductID = 3, Quantity = 12 }); var result1 = new RetrieveRequestHandler<Int32MasterRow>().Process(connection, new RetrieveRequest { EntityId = master1 }); Assert.NotNull(result1.Entity.DetailList); Assert.Equal(1, result1.Entity.DetailList.Count); var result11 = result1.Entity.DetailList[0]; Assert.Equal(master1, result11.MasterID); Assert.Equal(detail11, result11.DetailID); Assert.Equal(1, result11.ProductID); Assert.Equal(5, result11.Quantity); var result2 = new RetrieveRequestHandler<Int32MasterRow>().Process(connection, new RetrieveRequest { EntityId = master2 }); Assert.NotNull(result2.Entity.DetailList); Assert.Equal(0, result2.Entity.DetailList.Count); var result3 = new RetrieveRequestHandler<Int32MasterRow>().Process(connection, new RetrieveRequest { EntityId = master3 }); Assert.NotNull(result3.Entity.DetailList); Assert.Equal(3, result3.Entity.DetailList.Count); result3.Entity.DetailList.Sort((x, y) => (x.DetailID ?? 0).CompareTo(y.DetailID ?? 0)); var result31 = result3.Entity.DetailList[0]; Assert.Equal(master3, result31.MasterID); Assert.Equal(detail31, result31.DetailID); Assert.Equal(1, result31.ProductID); Assert.Equal(7, result31.Quantity); var result32 = result3.Entity.DetailList[1]; Assert.Equal(master3, result32.MasterID); Assert.Equal(detail32, result32.DetailID); Assert.Equal(3, result32.ProductID); Assert.Equal(10, result32.Quantity); var result33 = result3.Entity.DetailList[2]; Assert.Equal(master3, result33.MasterID); Assert.Equal(detail33, result33.DetailID); Assert.Equal(3, result33.ProductID); Assert.Equal(12, result33.Quantity); } } }