Example #1
0
        public DebReg.Models.BookingRecord AddBooking(
            DateTime date,
            Guid organizationId,
            Guid tournamentId,
            Product product,
            Decimal quantity,
            Boolean credit,
            DateTime? paymentsDueDate,
            User user)
        {

            Decimal value = quantity * product.Price;

            BookingRecord record = CreateBookingRecord(
                date,
                organizationId,
                tournamentId,
                product,
                quantity,
                value,
                credit,
                user);

            record.PaymentsDueDate = paymentsDueDate;

            unitOfWork.GetRepository<BookingRecord>().Insert(record);
            unitOfWork.Save();
            return record;
        }
Example #2
0
 private BookingRecord CreateBookingRecord(
             DateTime date,
             Guid organizationId,
             Guid tournamentId,
             Product product,
             Decimal quantity,
             Decimal value,
             Boolean credit,
             User user)
 {
     BookingRecord record = CreateBookingRecord(
         date,
         organizationId,
         tournamentId,
         value,
         credit,
         null,
         user
     );
     record.Product = product;
     record.ProductId = product.Id;
     record.ProductName = product.Name;
     record.Price = product.Price;
     record.VatRate = product.VatRate;
     record.Quantity = quantity;
     return record;
 }
Example #3
0
 public void SetProduct(Product product) {
     this.Product = product;
     this.ProductId = product.Id;
     this.ProductName = product.Name;
     this.Price = product.Price;
     this.VatRate = product.VatRate;
 }
Example #4
0
        public void UpdateTournament_WithValidUser_ShouldUpdateTournament()
        {
            // Arrange
            #region ARRANGE

            #region CREATE ORIGINAL TOURNAMENT

            var tournament = CreateTournament();

            unitOfWork.GetRepository<Tournament>().Insert(tournament);
            unitOfWork.Save();
            #endregion

            #region CREATE UPDATED TOURNAMENT

            string tournamentName = "test tournament";
            string tournamentLocation = "test location";
            DateTime tournamentStart = DateTime.Today.AddDays(30);
            DateTime tournamentEnd = tournamentStart.AddDays(2);
            DateTime tournamentRegistrationStart = tournamentStart.AddDays(-30);
            DateTime tournamentRegistrationEnd = tournamentRegistrationStart.AddDays(7);
            int? tournamentAdjudicatorSubtract = 2;
            int tournamentTeamSize = 2;
            int tournamentTeamCap = 48;
            int tournamentAdjudicatorCap = 48;
            Product teamProduct = new Product
            {
                Id = Guid.NewGuid()
            };
            Product adjudicatorProduct = new Product
            {
                Id = Guid.NewGuid()
            };
            bool tournamentUniversityRequired = false;
            Currency tournamentCurrency = new Currency
            {
                Id = Guid.NewGuid()
            };
            string tournamentFinanceEmail = "*****@*****.**";
            string tournamentTC = "Terms & Conditions";
            string tournamentTCLink = "http://tournamnet.org/tc.html";
            string tournamentMoneyTransferLinkCaption = "Money transfer";
            string tournamentMondeyTransferLink = "http://moneytransfer.com";
            string tournamentPaymentReference = "Payment reference";
            BankAccount bankAccount = new BankAccount
            {
                Id = Guid.NewGuid()
            };

            tournament = new Tournament
            {
                Id = tournament.Id,
                HostingOrganization = organization,
                Name = tournamentName,
                Location = tournamentLocation,
                Start = tournamentStart,
                End = tournamentEnd,
                RegistrationStart = tournamentRegistrationStart,
                RegistrationEnd = tournamentRegistrationEnd,
                AdjucatorSubtract = tournamentAdjudicatorSubtract,
                TeamSize = tournamentTeamSize,
                TeamCap = tournamentTeamCap,
                AdjudicatorCap = tournamentAdjudicatorCap,
                TeamProduct = teamProduct,
                AdjudicatorProduct = adjudicatorProduct,
                UniversityRequired = tournamentUniversityRequired,
                Currency = tournamentCurrency,
                FinanceEMail = tournamentFinanceEmail,
                TermsConditions = tournamentTC,
                TermsConditionsLink = tournamentTCLink,
                MoneyTransferLinkCaption = tournamentMoneyTransferLinkCaption,
                MoneyTransferLink = tournamentMondeyTransferLink,
                PaymentReference = tournamentPaymentReference,
                BankAccount = bankAccount
            };
            #endregion

            var user = CreateUserWithOrganizationRole(organization, OrganizationRole.OrganizationTournamentManager);

            #endregion

            // Act

            tournamentManager.UpdateTournament(tournament, user);

            // Assert

            #region ASSERT

            var savedTournament = unitOfWork.GetRepository<Tournament>().GetById(tournament.Id);
            //Assert.AreNotEqual(tournament, savedTournament);
            Assert.AreEqual(tournament.Id, savedTournament.Id);
            Assert.AreEqual(tournament.HostingOrganization, savedTournament.HostingOrganization);
            Assert.AreEqual(tournament.Name, savedTournament.Name);
            Assert.AreEqual(tournament.Location, savedTournament.Location);
            Assert.AreEqual(tournament.Start, savedTournament.Start);
            Assert.AreEqual(tournament.End, savedTournament.End);
            Assert.AreEqual(tournament.RegistrationStart, savedTournament.RegistrationStart);
            Assert.AreEqual(tournament.RegistrationEnd, savedTournament.RegistrationEnd);
            Assert.AreEqual(tournament.AdjucatorSubtract, savedTournament.AdjucatorSubtract);
            Assert.AreEqual(tournament.TeamSize, savedTournament.TeamSize);
            Assert.AreEqual(tournament.TeamCap, savedTournament.TeamCap);
            Assert.AreEqual(tournament.AdjudicatorCap, savedTournament.AdjudicatorCap);
            Assert.AreEqual(tournament.TeamProduct, savedTournament.TeamProduct);
            Assert.AreEqual(tournament.AdjudicatorProduct, savedTournament.AdjudicatorProduct);
            Assert.AreEqual(tournament.UniversityRequired, savedTournament.UniversityRequired);
            Assert.AreEqual(tournament.Currency, savedTournament.Currency);
            Assert.AreEqual(tournament.FinanceEMail, savedTournament.FinanceEMail);
            Assert.AreEqual(tournament.TermsConditions, savedTournament.TermsConditions);
            Assert.AreEqual(tournament.TermsConditionsLink, savedTournament.TermsConditionsLink);
            Assert.AreEqual(tournament.MoneyTransferLinkCaption, savedTournament.MoneyTransferLinkCaption);
            Assert.AreEqual(tournament.MoneyTransferLink, savedTournament.MoneyTransferLink);
            Assert.AreEqual(tournament.PaymentReference, savedTournament.PaymentReference);
            Assert.AreEqual(tournament.BankAccount, savedTournament.BankAccount);

            Assert.AreEqual(savedTournament.ModifiedBy, user);
            Assert.IsNotNull(savedTournament.Modified);

            #endregion
        }
Example #5
0
        public void AddBooking_WithProduct_ShouldCreateBooking() {
            // Arrange

            Random rand = new Random();
            DateTime date = DateTime.Now;
            Guid organizationId = Guid.NewGuid();
            Guid tournamentId = Guid.NewGuid();
            String productName = "Test Product";
            Decimal price = rand.Next(10, 1000);
            Decimal vatRate = 0.2M;
            Product product = new Product {
                Id = Guid.NewGuid(),
                Price = price,
                Name = productName,
                VatRate = vatRate
            };
            Decimal quantity = rand.Next(1, 3);
            Decimal value = rand.Next(10, 1000);
            Boolean credit = false;
            User user = new User { Id = Guid.NewGuid().ToString() };

            // Act

            var record = bookingManager.AddBooking(
                date,
                organizationId,
                tournamentId,
                product,
                quantity,
                value,
                credit,
                user
            );

            var id = record.Id;

            // Assert

            record = null;

            record = bookingManager.GetBookings(organizationId, tournamentId)
                .FirstOrDefault(r => r.Id == id);
            Assert.AreEqual(product.Id, record.ProductId);
            Assert.AreEqual(product.Name, record.ProductName);
            Assert.AreEqual(product.Price, record.Price);
            Assert.AreEqual(product.VatRate, record.VatRate);
            Assert.AreEqual(quantity, record.Quantity);
        }