public async Task EntityAction_TaskAsync()
        {
            // Setup
            var ctx       = new ServerSideAsyncDomainContext(TestURIs.ServerSideAsync);
            var rangeItem = new RangeItem();

            ctx.RangeItems.Attach(rangeItem);

            rangeItem.Text = "updating";
            rangeItem.CustomUpdateRange();

            // Act
            var result = await ctx.SubmitChangesAsync();

            // Verify
            Assert.AreEqual("custom updated", rangeItem.Text);
            CollectionAssert.AreEqual(new[] { rangeItem }, result.ChangeSet.ModifiedEntities);
        }
        public async Task EntityAction_TaskAsyncWithException_InTask()
        {
            // Setup
            var ctx       = new ServerSideAsyncDomainContext(TestURIs.ServerSideAsync);
            var rangeItem = new RangeItem()
            {
                ThrowDomainException = true
            };

            ctx.RangeItems.Attach(rangeItem);

            rangeItem.CustomUpdateRange();

            // Act
            var domainException = await ExceptionHelper.ExpectExceptionAsync <DomainException>(ctx.SubmitChangesAsync, "CustomUpdateRangeAsync");

            // Verify
            Assert.AreEqual(28, domainException.ErrorCode, "Wrong error code returned or expected operation was not executed");
        }