Exemple #1
0
        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());
        }
Exemple #4
0
        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);
        }
Exemple #7
0
        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));
        }
Exemple #10
0
 public override Entities.RoundAuctionsStatus DeleteRound(RoundAuction roundAuctionToDelete) => this;
Exemple #11
0
 public override Entities.RoundAuctionsStatus AddRound(RoundAuction newRoundAuction) => new RoundAuctionsStatusHasRounds(Auction, newRoundAuction);
Exemple #12
0
        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()
        }