コード例 #1
0
        public void AggregatorWithLinkToDetailTest1()
        {
            foreach (IDataService ds in DataServices)
            {
                var aggregator = new AggregatorUpdateObjectTest {
                    AggregatorName = "aggregatorName"
                };
                var detail = new DetailUpdateObjectTest {
                    DetailName = "detailName"
                };

                // Act & Assert.
                ds.UpdateObject(aggregator);
                aggregator = ds.Query <AggregatorUpdateObjectTest>(AggregatorUpdateObjectTest.Views.AggregatorUpdateObjectTestE)
                             .First(x => x.__PrimaryKey == aggregator.__PrimaryKey);

                aggregator.Details.Add(detail);
                aggregator.Detail = detail;
                ds.UpdateObject(aggregator);

                var master = new MasterUpdateObjectTest {
                    MasterName = "masterName", Detail = detail
                };
                aggregator.Masters.Add(master);
                detail.Master = master;
                ds.UpdateObject(aggregator);

                var aggregatorActual = ds.Query <AggregatorUpdateObjectTest>(AggregatorUpdateObjectTest.Views.AggregatorUpdateObjectTestE)
                                       .First(x => x.__PrimaryKey == aggregator.__PrimaryKey);

                Assert.NotNull(aggregatorActual);
                Assert.Equal(aggregator.__PrimaryKey, aggregatorActual.__PrimaryKey);
                Assert.Equal(aggregator.AggregatorName, aggregatorActual.AggregatorName);
                Assert.Equal(aggregator.Details.Count, aggregatorActual.Details.Count);
                Assert.Equal(aggregator.Masters.Count, aggregatorActual.Masters.Count);

                aggregatorActual.SetStatus(ObjectStatus.Deleted);
                ds.UpdateObject(aggregatorActual);

                var aggregatorDeleted = ds.Query <AggregatorUpdateObjectTest>(AggregatorUpdateObjectTest.Views.AggregatorUpdateObjectTestE)
                                        .FirstOrDefault(x => x.__PrimaryKey == aggregator.__PrimaryKey);
                var detailDeleted = ds.Query <DetailUpdateObjectTest>(DetailUpdateObjectTest.Views.DetailUpdateObjectTestE)
                                    .FirstOrDefault(x => x.__PrimaryKey == detail.__PrimaryKey);
                var masterDeleted = ds.Query <MasterUpdateObjectTest>(MasterUpdateObjectTest.Views.MasterUpdateObjectTestE)
                                    .FirstOrDefault(x => x.__PrimaryKey == detail.__PrimaryKey);

                Assert.Null(aggregatorDeleted);
                Assert.Null(detailDeleted);
                Assert.Null(masterDeleted);
            }
        }
コード例 #2
0
        public void AggregatorWithLinkToDetailTest()
        {
            foreach (IDataService dataService in DataServices)
            {
                // Arrange.
                SQLDataService ds = dataService as SQLDataService;
                var            aggregatorForUpdateExpect = new AggregatorUpdateObjectTest {
                    AggregatorName = "aggregatorName"
                };
                var detailForUpdate = new DetailUpdateObjectTest {
                    DetailName = "detailName"
                };

                // Act & Assert.
                ds.UpdateObject(aggregatorForUpdateExpect);
                aggregatorForUpdateExpect =
                    ds.Query <AggregatorUpdateObjectTest>("AggregatorUpdateObjectTestE")
                    .First(x => x.__PrimaryKey == aggregatorForUpdateExpect.__PrimaryKey);
                aggregatorForUpdateExpect.Details.Add(detailForUpdate);
                aggregatorForUpdateExpect.Detail = detailForUpdate;
                ds.UpdateObject(aggregatorForUpdateExpect);
                var masterOfDetail = new MasterUpdateObjectTest {
                    MasterName = "masterName", Detail = detailForUpdate
                };
                aggregatorForUpdateExpect.Masters.Add(masterOfDetail);
                detailForUpdate.Master = masterOfDetail;
                ds.UpdateObject(aggregatorForUpdateExpect);

                var aggregatorForUpdateActual =
                    ds.Query <AggregatorUpdateObjectTest>("AggregatorUpdateObjectTestE")
                    .First(x => x.__PrimaryKey == aggregatorForUpdateExpect.__PrimaryKey);

                Assert.NotNull(aggregatorForUpdateActual);
                Assert.Equal(aggregatorForUpdateExpect.__PrimaryKey, aggregatorForUpdateActual.__PrimaryKey);
                Assert.Equal(aggregatorForUpdateExpect.AggregatorName, aggregatorForUpdateActual.AggregatorName);
                Assert.Equal(aggregatorForUpdateExpect.Details.Count, aggregatorForUpdateActual.Details.Count);

                aggregatorForUpdateActual.SetStatus(ObjectStatus.Deleted);
                ds.UpdateObject(aggregatorForUpdateActual);

                var aggregatorForUpdateDeleted =
                    ds.Query <AggregatorUpdateObjectTest>("AggregatorUpdateObjectTestE")
                    .FirstOrDefault(x => x.__PrimaryKey == aggregatorForUpdateExpect.__PrimaryKey);
                var detailDeleted =
                    ds.Query <DetailUpdateObjectTest>("DetailUpdateObjectTestE")
                    .FirstOrDefault(x => x.__PrimaryKey == detailForUpdate.__PrimaryKey);

                Assert.Null(aggregatorForUpdateDeleted);
                Assert.Null(detailDeleted);
            }
        }