Пример #1
0
        public void DomainService_InvalidOperationType()
        {
            TestDomainServices.EF.Northwind nw  = new TestDomainServices.EF.Northwind();
            DomainServiceContext            dsc = new DomainServiceContext(new MockDataService(new MockUser("mathew")
            {
                IsAuthenticated = true
            }), DomainOperationType.Submit);

            nw.Initialize(dsc);

            IEnumerable <ValidationResult> validationResults = null;
            int totalCount;

            DomainServiceDescription dsd   = DomainServiceDescription.GetDescription(typeof(TestDomainServices.EF.Northwind));
            DomainOperationEntry     entry = dsd.DomainOperationEntries.First(p => p.Operation == DomainOperation.Query);
            QueryDescription         qd    = new QueryDescription(entry);

            ExceptionHelper.ExpectException <InvalidOperationException>(delegate
            {
                nw.Query(qd, out validationResults, out totalCount);
            }, string.Format(Resource.DomainService_InvalidOperationType, DomainOperationType.Submit, DomainOperationType.Query));

            InvokeDescription id = new InvokeDescription(entry, null);

            ExceptionHelper.ExpectException <InvalidOperationException>(delegate
            {
                nw.Invoke(id, out validationResults);
            }, string.Format(Resource.DomainService_InvalidOperationType, DomainOperationType.Submit, DomainOperationType.Invoke));

            nw  = new TestDomainServices.EF.Northwind();
            dsc = new DomainServiceContext(new MockDataService(new MockUser("mathew")
            {
                IsAuthenticated = true
            }), DomainOperationType.Query);
            nw.Initialize(dsc);

            ChangeSet cs = new ChangeSet(new ChangeSetEntry[] {
                new ChangeSetEntry()
                {
                    Entity = new ServiceContext_CurrentOperation_Entity()
                    {
                        Key = 1
                    },
                    Operation = DomainOperation.Insert
                }
            });

            ExceptionHelper.ExpectException <InvalidOperationException>(delegate
            {
                nw.Submit(cs);
            }, string.Format(Resource.DomainService_InvalidOperationType, DomainOperationType.Query, DomainOperationType.Submit));
        }
Пример #2
0
        public async Task DomainService_InvalidOperationType()
        {
            TestDomainServices.EF.Northwind nw  = new TestDomainServices.EF.Northwind();
            DomainServiceContext            dsc = new DomainServiceContext(new MockDataService(new MockUser("mathew")
            {
                IsAuthenticated = true
            }), DomainOperationType.Submit);

            nw.Initialize(dsc);

            DomainServiceDescription dsd   = DomainServiceDescription.GetDescription(typeof(TestDomainServices.EF.Northwind));
            DomainOperationEntry     entry = dsd.GetQueryMethod(nameof(TestDomainServices.EF.Northwind.GetOrderDetails));
            QueryDescription         qd    = new QueryDescription(entry);
            await ExceptionHelper.ExpectExceptionAsync <InvalidOperationException>(() =>
            {
                return(nw.QueryAsync <NorthwindModel.Order_Detail>(qd, CancellationToken.None).AsTask());
            }, string.Format(Resource.DomainService_InvalidOperationType, DomainOperationType.Submit, DomainOperationType.Query));

            InvokeDescription id = new InvokeDescription(entry, null);
            await ExceptionHelper.ExpectExceptionAsync <InvalidOperationException>(() =>
            {
                return(nw.InvokeAsync(id, CancellationToken.None).AsTask());
            }, string.Format(Resource.DomainService_InvalidOperationType, DomainOperationType.Submit, DomainOperationType.Invoke));

            nw  = new TestDomainServices.EF.Northwind();
            dsc = new DomainServiceContext(new MockDataService(new MockUser("mathew")
            {
                IsAuthenticated = true
            }), DomainOperationType.Query);
            nw.Initialize(dsc);

            ChangeSet cs = new ChangeSet(new ChangeSetEntry[] {
                new ChangeSetEntry()
                {
                    Entity = new ServiceContext_CurrentOperation_Entity()
                    {
                        Key = 1
                    },
                    Operation = DomainOperation.Insert
                }
            });
            await ExceptionHelper.ExpectExceptionAsync <InvalidOperationException>(async() =>
            {
                await nw.SubmitAsync(cs, CancellationToken.None);
            }, string.Format(Resource.DomainService_InvalidOperationType, DomainOperationType.Query, DomainOperationType.Submit));
        }
Пример #3
0
        public void EFDomainService_AddUnmodifiedScenario()
        {
            // create an updated order with an attached new detail
            NorthwindModel.Order order = new NorthwindModel.Order {
                OrderID = 1, ShipCity = "London"
            };
            NorthwindModel.Order origOrder = new NorthwindModel.Order {
                OrderID = 1, ShipCity = "Paris"
            };
            NorthwindModel.Order_Detail detail = new NorthwindModel.Order_Detail {
                OrderID = 1, ProductID = 1
            };
            NorthwindModel.Order_Detail detail2 = new NorthwindModel.Order_Detail {
                OrderID = 1, ProductID = 2
            };
            order.Order_Details.Add(detail);
            order.Order_Details.Add(detail2);

            // create and initialize the service
            DomainServiceDescription dsd = DomainServiceDescription.GetDescription(typeof(TestDomainServices.EF.Northwind));

            TestDomainServices.EF.Northwind nw  = new TestDomainServices.EF.Northwind();
            DomainServiceContext            dsc = new DomainServiceContext(new MockDataService(new MockUser("mathew")
            {
                IsAuthenticated = true
            }), DomainOperationType.Submit);

            nw.Initialize(dsc);

            // call attach directly - this causes the detail to be attached as unmodified
            order.EntityKey     = nw.ObjectContext.CreateEntityKey("Orders", order);
            origOrder.EntityKey = nw.ObjectContext.CreateEntityKey("Orders", order);
            ObjectContextExtensions.AttachAsModified(nw.ObjectContext.Orders, order, origOrder);

            // now insert the detail, and verify that even though the detail is already
            // attached it can be transitioned to new
            nw.InsertOrderDetail(detail);
            nw.InsertOrderDetail(detail2);

            Assert.AreEqual(System.Data.Entity.EntityState.Modified, order.EntityState);
            Assert.AreEqual(System.Data.Entity.EntityState.Added, detail.EntityState);
            Assert.AreEqual(System.Data.Entity.EntityState.Added, detail2.EntityState);
        }
        public void EFDomainService_AddUnmodifiedScenario()
        {
            // create an updated order with an attached new detail
            NorthwindModel.Order order = new NorthwindModel.Order { OrderID = 1, ShipCity = "London" };
            NorthwindModel.Order origOrder = new NorthwindModel.Order { OrderID = 1, ShipCity = "Paris" };
            NorthwindModel.Order_Detail detail = new NorthwindModel.Order_Detail { OrderID = 1, ProductID = 1 };
            NorthwindModel.Order_Detail detail2 = new NorthwindModel.Order_Detail { OrderID = 1, ProductID = 2 };
            order.Order_Details.Add(detail);
            order.Order_Details.Add(detail2);

            // create and initialize the service
            DomainServiceDescription dsd = DomainServiceDescription.GetDescription(typeof(TestDomainServices.EF.Northwind));
            TestDomainServices.EF.Northwind nw = new TestDomainServices.EF.Northwind();
            DomainServiceContext dsc = new DomainServiceContext(new MockDataService(new MockUser("mathew") { IsAuthenticated = true }), DomainOperationType.Submit);
            nw.Initialize(dsc);

            // call attach directly - this causes the detail to be attached as unmodified
            order.EntityKey = nw.ObjectContext.CreateEntityKey("Orders", order);
            origOrder.EntityKey = nw.ObjectContext.CreateEntityKey("Orders", order);
            ObjectContextExtensions.AttachAsModified(nw.ObjectContext.Orders, order, origOrder);
            
            // now insert the detail, and verify that even though the detail is already
            // attached it can be transitioned to new
            nw.InsertOrderDetail(detail);
            nw.InsertOrderDetail(detail2);

            Assert.AreEqual(System.Data.Entity.EntityState.Modified, order.EntityState);
            Assert.AreEqual(System.Data.Entity.EntityState.Added, detail.EntityState);
            Assert.AreEqual(System.Data.Entity.EntityState.Added, detail2.EntityState);
        }
        public void DomainService_InvalidOperationType()
        {
            TestDomainServices.EF.Northwind nw = new TestDomainServices.EF.Northwind();
            DomainServiceContext dsc = new DomainServiceContext(new MockDataService(new MockUser("mathew") { IsAuthenticated = true }), DomainOperationType.Submit);
            nw.Initialize(dsc);

            IEnumerable<ValidationResult> validationResults = null;
            int totalCount;

            DomainServiceDescription dsd = DomainServiceDescription.GetDescription(typeof(TestDomainServices.EF.Northwind));
            DomainOperationEntry entry = dsd.DomainOperationEntries.First(p => p.Operation == DomainOperation.Query);
            QueryDescription qd = new QueryDescription(entry);
            ExceptionHelper.ExpectException<InvalidOperationException>(delegate
            {
                nw.Query(qd, out validationResults, out totalCount);
            }, string.Format(Resource.DomainService_InvalidOperationType, DomainOperationType.Submit, DomainOperationType.Query));

            InvokeDescription id = new InvokeDescription(entry, null);
            ExceptionHelper.ExpectException<InvalidOperationException>(delegate
            {
                nw.Invoke(id, out validationResults);
            }, string.Format(Resource.DomainService_InvalidOperationType, DomainOperationType.Submit, DomainOperationType.Invoke));

            nw = new TestDomainServices.EF.Northwind();
            dsc = new DomainServiceContext(new MockDataService(new MockUser("mathew") { IsAuthenticated = true }), DomainOperationType.Query);
            nw.Initialize(dsc);

            ChangeSet cs = new ChangeSet(new ChangeSetEntry[] {
                new ChangeSetEntry() { 
                    Entity = new ServiceContext_CurrentOperation_Entity() { Key = 1 },
                    Operation = DomainOperation.Insert
                }
            });
            ExceptionHelper.ExpectException<InvalidOperationException>(delegate
            {
                nw.Submit(cs);
            }, string.Format(Resource.DomainService_InvalidOperationType, DomainOperationType.Query, DomainOperationType.Submit));
        }