예제 #1
0
        /*[Fact, Asynchronous] */ // Activate this after solving error handling
        public async Task BatchSequencingTestFailsWithMultiPartMixed()
        {
            DefaultContainer context = this.CreateWrappedContext <DefaultContainer>().Context;
            Customer         c1      = new Customer {
                CustomerId = 1, Name = "customerOne"
            };
            Customer c2 = new Customer {
                CustomerId = 2, Name = "customerTwo"
            };

            context.AddToCustomer(c1);
            context.AddToCustomer(c2);
            await context.SaveChangesAsync(SaveChangesOptions.BatchWithSingleChangeset);

            c1.Name = "customerOne updated name";
            c2.Name = "customerTwo updated name";

            context.UpdateObject(c1);
            context.UpdateObject(c2, c1);

            Task response() => context.SaveChangesAsync(SaveChangesOptions.BatchWithIndependentOperations);

            var exception = await Assert.ThrowsAsync <ODataException>(response);

            Assert.Contains("The dependsOn Id in request is not matching any of the request Id and atomic group Id seen so far", exception.Message);

            this.EnqueueTestComplete();
        }
예제 #2
0
        public async Task JsonBatchSequencingSingeChangeSetTest()
        {
            DefaultContainer context = this.CreateWrappedContext <DefaultContainer>().Context;
            Customer         c1      = new Customer {
                CustomerId = 1, Name = "customerOne"
            };
            Customer c2 = new Customer {
                CustomerId = 2, Name = "customerTwo"
            };
            Customer c3 = new Customer {
                CustomerId = 3, Name = "customerThree"
            };

            context.AddToCustomer(c1);
            context.AddToCustomer(c2);
            context.AddToCustomer(c3);
            await context.SaveChangesAsync(SaveChangesOptions.BatchWithSingleChangeset);

            c1.Name = "customerOne updated name";
            c2.Name = "customerTwo updated name";

            context.UpdateObject(c1);
            context.UpdateObject(c2, c1);
            context.DeleteObject(c3, c2);

            var response = await context.SaveChangesAsync(SaveChangesOptions.BatchWithSingleChangeset | SaveChangesOptions.UseJsonBatch);

            Assert.Equal(204, (response.First() as ChangeOperationResponse).StatusCode);

            this.EnqueueTestComplete();
        }