private void AddOneRoundAuctionInAuction(RoundAuction roundAuction) { var addRoundAuctionStrategy = AuctionStrategyFactory.Make <AddRoundAuctionParameter>(StrategyTypeEnum.AddRound); var parameter = new AddRoundAuctionParameter(roundAuction); addRoundAuctionStrategy.Execute(Auction, parameter); }
public void Shuuld_Be_RoundAuctionsStatusHastRounds_After_To_Add_First_RoundAuction() { var roundAuction = new RoundAuction(Auction); var parameter = new AddRoundAuctionParameter(roundAuction); Sut.Execute(Auction, parameter); Assert.True(Auction.RoundAuctionsStatus is RoundAuctionsStatusHasRounds); }
public void Should_Add_One_RoundAuction() { var roundAuction = new RoundAuction(Auction); var parameter = new AddRoundAuctionParameter(roundAuction); Sut.Execute(Auction, parameter); Assert.Equal(1, Auction.RoundAuctionsStatus.Rounds.Count()); }
public void Should_Add_One_RoundAuction() { var dateToUpdate = new DateTime(1888, 2, 2); var roundAuction = new RoundAuction(Auction); var parameter = new UpdateOpeningParameter(dateToUpdate); Sut.Execute(Auction, parameter); Assert.Equal(dateToUpdate, Auction.OpeningDate); }
public override Entities.RoundAuctionsStatus DeleteRound(RoundAuction roundAuctionToDelete) { Rounds?.Remove(roundAuctionToDelete); if (Rounds == null || Rounds.Count == 0) { return(new RoundAuctionsStatusHasNotRounds(Auction)); } return(this); }
public override Entities.RoundAuctionsStatus AddRound(RoundAuction newRoundAuction) { if (Rounds == null) { Rounds = new List <RoundAuction>(); } Rounds.Add(newRoundAuction); return(this); }
public void Should_Delete_One_RoundAuction() { var roundAuctionToDelete = new RoundAuction(Auction); AddOneRoundAuctionInAuction(new RoundAuction(Auction)); AddOneRoundAuctionInAuction(new RoundAuction(Auction)); AddOneRoundAuctionInAuction(roundAuctionToDelete); var parameter = new DeleteRoundAuctionParameter(roundAuctionToDelete); Sut.Execute(Auction, parameter); Assert.Equal(2, Auction.RoundAuctionsStatus.Rounds.Count()); }
public RoundAuctionsStatusHasRounds(Auction auction, RoundAuction newRoundAunction) : base(auction) { AddRound(newRoundAunction); }
public Entities.RoundAuctionsStatus Make(RoundAuctionStatusTypeEnum type, Auction auction, RoundAuction newRound = null) { switch (type) { case RoundAuctionStatusTypeEnum.HasRound: return(new RoundAuctionsStatusHasRounds(auction, newRound)); case RoundAuctionStatusTypeEnum.HasNotRound: return(new RoundAuctionsStatusHasNotRounds(auction)); default: break; } return(new RoundAuctionsStatusHasNotRounds(auction)); }
public override Entities.RoundAuctionsStatus DeleteRound(RoundAuction roundAuctionToDelete) => this;
public override Entities.RoundAuctionsStatus AddRound(RoundAuction newRoundAuction) => new RoundAuctionsStatusHasRounds(Auction, newRoundAuction);
static void Main(string[] args) { Console.WriteLine("Hello World!"); var auctionStrategyFactory = new AuctionStrategyFactory(); var updateProviderStrategy = auctionStrategyFactory.Make <UpdateProviderParameter>(StrategyTypeEnum.UpdateProvider); var updateParameter = new UpdateProviderParameter(new Providers(new List <Provider> { new Provider { Name = "Juan" } })); var auctionStatusFactory = new AuctionStatusFactory(); var roundAuctionStatusFactory = new RoundAuctionStatusFactory(); var auction = new Auction(auctionStatusFactory, roundAuctionStatusFactory, AuctionStatusTypeEnum.New); auction.ChangeStatus(auctionStatusFactory.Make(AuctionStatusTypeEnum.Draft, auction)); auction.Update(updateProviderStrategy, updateParameter); var newRound1 = new RoundAuction(auction); var newRound2 = new RoundAuction(auction); var newRound3 = new RoundAuction(auction); //Round Auction var addRoundAuctionStrategy = auctionStrategyFactory.Make <AddRoundAuctionParameter>(StrategyTypeEnum.AddRound); var addRoundAuctionParameters = new AddRoundAuctionParameter(newRound1); auction.Update(addRoundAuctionStrategy, addRoundAuctionParameters); var addRoundAuctionParameters2 = new AddRoundAuctionParameter(newRound2); auction.Update(addRoundAuctionStrategy, addRoundAuctionParameters2); var deleteRoundAuctionStrategy = auctionStrategyFactory.Make <DeleteRoundAuctionParameter>(StrategyTypeEnum.DeleteRound); var deleteRoundAuctionParameters = new DeleteRoundAuctionParameter(newRound1); auction.Update(deleteRoundAuctionStrategy, deleteRoundAuctionParameters); var deleteRoundAuctionParameters3 = new DeleteRoundAuctionParameter(newRound1); auction.Update(deleteRoundAuctionStrategy, deleteRoundAuctionParameters3); var deleteRoundAuctionParameters2 = new DeleteRoundAuctionParameter(newRound2); auction.Update(deleteRoundAuctionStrategy, deleteRoundAuctionParameters2); var auctionsDecoratorsFactory = new AuctionsMilestoneDecoratorsChainOfResponsibilityFactory(); //var decorator = auctionsDecoratorsFactory.Make<AuctionMilestoneStrategyParameter>(DecoratorsEnum.DecoratorAuctionMilestone); //decorator.SetStrategy() }