public void Construct() { var basket = new DeleteBasket <int, Frog, int>(85); Assert.Equal(typeof(Frog), basket.DataType); Assert.Equal(85, basket.DescentPayload); }
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 ); }
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)); }
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; }
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); } }