Пример #1
0
        public void Construct()
        {
            var basket = new DeleteBasket <int, Frog, int>(85);

            Assert.Equal(typeof(Frog), basket.DataType);
            Assert.Equal(85, basket.DescentPayload);
        }
Пример #2
0
 private DeleteBasketMock()
 {
     this.BasketsRepositoryMock     = new Mock <IBasketsRepository>();
     this.BasketDeletedProducerMock = new Mock <IBasketDeletedProducer>();
     this.LogMock = new Mock <ILog>();
     this.Target  = new DeleteBasket(
         BasketsRepositoryMock.Object,
         BasketDeletedProducerMock.Object,
         LogMock.Object
         );
 }
Пример #3
0
        public async Task Delete()
        {
            var mine   = new FrogMine("allowed");
            var basket = new DeleteBasket <int, Frog, int>(6);
            await mine.SendAsync(basket);

            Assert.Equal(1, basket.AscentPayload);

            mine   = new FrogMine("Delete");
            basket = new DeleteBasket <int, Frog, int>(6);
            await mine.SendAsync(basket);

            Assert.Equal(1, basket.AscentPayload);

            mine   = new FrogMine("not-allowed");
            basket = new DeleteBasket <int, Frog, int>(6);
            await Assert.ThrowsAnyAsync <ShaftException>(() => mine.SendAsync(basket));
        }
Пример #4
0
        public async Task Delete()
        {
            var layer = new SalesforceLayer <MyContact>(_forceClient, new MyContactObjectDescriptor());

            var contact = new MyContact
            {
                Forename   = Guid.NewGuid().ToString(),
                Surname    = Guid.NewGuid().ToString(),
                Street     = Guid.NewGuid().ToString(),
                City       = "Glasgow",
                Country    = "United Kingdom",
                PostalCode = "G12AB",
                CanEmail   = true
            };

            var postBasket = new PostBasket <MyContact, string>(contact);
            await layer.AddResultAsync(postBasket, new Visit("Post", VisitDirections.Down)).ConfigureAwait(false);

            var id = postBasket.AscentPayload;

            Assert.False(string.IsNullOrWhiteSpace(id));

            var deleteBasket = new DeleteBasket <string, MyContact, int>(id);
            await layer.AddResultAsync(deleteBasket, new Visit("Delete", VisitDirections.Down)).ConfigureAwait(false);

            Assert.Equal(1, deleteBasket.AscentPayload);

            Exception exception = null;

            try
            {
                var getBasket = new GetBasket <string, MyContact>(id);
                await layer.AddResultAsync(getBasket, new Visit("Get", VisitDirections.Down)).ConfigureAwait(false);
            }
            catch (InvalidOperationException ex)
            {
                exception = ex;
            }

            Assert.NotNull(exception);
            Assert.Contains("Done: True, Count: 0", exception.Message);
        }
        public async Task AddResultAsync(IPostBasket <Types.MaturationEvent, int> basket, IVisit visit)
        {
            var date   = basket.DescentPayload.Date;
            var filter = new Filter <Types.Tadpole>(new[]
            {
                new FilterTerm(nameof(Types.Tadpole.DateOfBirth), FilterOperators.LessThanOrEqual, date.AddMonths(-2))
            });

            // get all tadpoles who are of a certain age - see filter above
            var getTadpolesBasket =
                new GetCollectionBasket <Types.Tadpole>(new GetCollectionRequest <Types.Tadpole>(filter));

            await _tadpoleMine.SendAsync(getTadpolesBasket).ConfigureAwait(false);

            var tadpoles = getTadpolesBasket.AscentPayload;

            if (tadpoles.Length > 0)
            {
                // covert the retrieved tadpoles into frogs...
                foreach (var tadpole in tadpoles)
                {
                    var frog = tadpole.ToFrog();
                    using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
                    {
                        // ... create frog
                        var postFrogBasket = new PostBasket <Types.Frog, int>(frog);
                        var postFrogTask   = _frogMine.SendAsync(postFrogBasket);

                        // ...and get rid of the tapole which has now become a frog
                        var deleteTadpoleBasket = new DeleteBasket <int, Types.Tadpole, int>(tadpole.Id);
                        var deleteTadpoleTask   = _tadpoleMine.SendAsync(deleteTadpoleBasket);

                        Task.WaitAll(postFrogTask, deleteTadpoleTask);

                        scope.Complete();
                    }
                }
            }

            basket.AscentPayload = tadpoles.Length;
        }
Пример #6
0
        public async Task Delete()
        {
            var layer = GetLayer();

            InsertFrogs(layer, 10);

            var deleteBasket = new DeleteBasket <int, Frog, int>(4);

            await layer.AddResultAsync(deleteBasket, new Visit("something", VisitDirections.Down)).ConfigureAwait(false);

            Assert.Equal(1, deleteBasket.AscentPayload);

            var getBasket = new GetCollectionBasket <Frog>(new GetCollectionRequest <Frog>());
            await layer.AddResultAsync(getBasket, new Visit("something", VisitDirections.Down)).ConfigureAwait(false);

            Assert.Equal(9, getBasket.AscentPayload.Length);
            foreach (var frog in getBasket.AscentPayload)
            {
                Assert.NotEqual(4, frog.Id);
            }
        }