public void Competition_Invoice_Test()
        {
            var fortKnox = FortKnox.Instance();

            var invoices = fortKnox.ExportInvoices();

            Assert.Empty(invoices);

            var memberFactory = new MemberFactory(400);
            var member1       = memberFactory.CreateMember("Test1", "1", true);
            var member2       = memberFactory.CreateMember("Test2", "2", true);

            var competitionFactory = new CompetitionFactory();
            var testCompetition    = competitionFactory.CreateCompetition("Test Cup", DateTime.Now, DateTime.Now.AddDays(7), 150);

            var matchDirector           = new MatchDirector();
            var competitionMatchBuilder = new CompetitionMatchBuilder(testCompetition, 100);

            matchDirector.Construct(competitionMatchBuilder, member1, member2);

            var expectedInvoice1 = "Name: " + member1.Name + " Address: " + member1.Address + " Amount: " + 100;
            var expectedInvoice2 = "Name: " + member2.Name + " Address: " + member2.Address + " Amount: " + 100;
            var expectedInvoice3 = "Name: " + member1.Name + " Address: " + member1.Address + " Amount: " + 150;
            var expectedInvoice4 = "Name: " + member2.Name + " Address: " + member2.Address + " Amount: " + 150;

            invoices = fortKnox.ExportInvoices();

            Assert.Contains(expectedInvoice1, invoices);
            Assert.Contains(expectedInvoice2, invoices);
            Assert.Contains(expectedInvoice1, invoices);
            Assert.Contains(expectedInvoice2, invoices);
        }
        public void CreateInvoice(Member playerOne, Member playerTwo)
        {
            var fortKnox = FortKnox.Instance();

            fortKnox.NewInvoice(playerOne, _matchFee);
            fortKnox.NewInvoice(playerTwo, _matchFee);
        }
        public void Match_Invoice_Test()
        {
            var fortKnox = FortKnox.Instance();

            var invoices = fortKnox.ExportInvoices();

            Assert.Empty(invoices);

            var memberFactory = new MemberFactory(400);
            var member1       = memberFactory.CreateMember("Test1", "1", true);
            var member2       = memberFactory.CreateMember("Test2", "2", true);

            var matchDirector = new MatchDirector();
            var matchBuilder  = new MatchBuilder(100);

            matchDirector.Construct(matchBuilder, member1, member2);

            var expectedInvoice1 = "Name: " + member1.Name + " Address: " + member1.Address + " Amount: " + 100;
            var expectedInvoice2 = "Name: " + member2.Name + " Address: " + member2.Address + " Amount: " + 100;

            invoices = fortKnox.ExportInvoices();

            Assert.Contains(expectedInvoice1, invoices);
            Assert.Contains(expectedInvoice2, invoices);
        }
        public void New_Member_Invoice_Test()
        {
            var fortKnox      = FortKnox.Instance();
            var memberFactory = new MemberFactory(400);
            var member        = memberFactory.CreateMember("Test1", "Test1", false);

            var invoices        = fortKnox.ExportInvoices();
            var expectedInvoice = "Name: " + member.Name + " Address: " + member.Address + " Amount: " + 400;

            Assert.Single(invoices);
            Assert.Equal(expectedInvoice, invoices.Last());
        }
        public void New_Member_No_Invoice_Test()
        {
            var          resultManager = ResultManager.Instance();
            var          fortKnox      = FortKnox.Instance();
            const double membershipFee = 400;
            var          memberFactory = new MemberFactory(membershipFee);
            var          member        = memberFactory.CreateMember("Test2", "Test2", true);

            Assert.Equal(member, resultManager.Members.Last());

            var invoices = fortKnox.ExportInvoices();

            Assert.Empty(invoices);
        }
Beispiel #6
0
        public void CreateInvoice(Member playerOne, Member playerTwo)
        {
            var fortKnox = FortKnox.Instance();

            if (!_competition.IsParticipant(playerOne))
            {
                fortKnox.NewInvoice(playerOne, _competition.Fee);
                _competition.AddParticipant(playerOne);
            }
            if (!_competition.IsParticipant(playerTwo))
            {
                fortKnox.NewInvoice(playerTwo, _competition.Fee);
                _competition.AddParticipant(playerTwo);
            }

            fortKnox.NewInvoice(playerOne, _matchFee);
            fortKnox.NewInvoice(playerTwo, _matchFee);
        }
        public Member CreateMember(string name, string address, bool paidMembership)
        {
            _member = new Member(name, address, paidMembership);

            var resultManager = ResultManager.Instance();

            resultManager.Members.Add(_member);

            if (paidMembership)
            {
                return(_member);
            }
            var billingInterface = FortKnox.Instance();

            billingInterface.NewInvoice(_member, _memberFee);
            _member.PaidMembership = true;
            Console.WriteLine("Membership invoice created for: " + _member.Name);

            return(_member);
        }
Beispiel #8
0
        static void Main(string[] args)
        {
            var memberFactory = new MemberFactory(400);

            for (var i = 0; i < 11; i++)
            {
                memberFactory.CreateMember("TestMember" + i, "Test Street" + i, true);
            }

            var competitionFactory = new CompetitionFactory();
            var testCompetition    = competitionFactory.CreateCompetition("Test Competition", DateTime.Now, DateTime.Now.AddDays(7), 150);


            var matchDirector           = new MatchDirector();
            var testCupGameMatchBuilder = new CompetitionMatchBuilder(testCompetition, 100);

            Console.WriteLine("Competition games");
            for (var j = 0; j < 11; j++)
            {
                for (var i = j + 1; i < 11; i++)
                {
                    var player   = ResultManager.Instance().Members[j];
                    var opponent = ResultManager.Instance().Members[i];

                    matchDirector.Construct(testCupGameMatchBuilder, player, opponent);
                    testCupGameMatchBuilder.GetResult().GeneratePlayerScores();
                }
            }


            Console.WriteLine();
            Console.WriteLine("Champion playing games...");
            var champ = memberFactory.CreateMember("Winner", "Winner Street", true);
            var loser = memberFactory.CreateMember("Loser", "Loser Street", true);

            var standaloneMatchBuilder = new MatchBuilder(100);

            for (var i = 0; i < 12; i++)
            {
                matchDirector.Construct(standaloneMatchBuilder, champ, loser);
                var testMatch = standaloneMatchBuilder.GetResult();
                testMatch.SetPlayerOneScore(100, 100, 100);
                testMatch.SetPlayerTwoScore(50, 50, 50);
            }


            var resultManager = ResultManager.Instance();

            resultManager.GetCompetitionResults(testCompetition);
            resultManager.GetYearChampion(DateTime.Now);


            Console.WriteLine();
            Console.WriteLine("----------");
            var fortKnox = FortKnox.Instance();

            fortKnox.ExportInvoices();

            Console.WriteLine("Press any key...");
            Console.ReadLine();
        }