Example #1
0
        public void TestProceessAmount_VerifyMethodCalls(decimal amount, string creditCardNumber, string creditCardHolder, string expiryDate,
                                                         string securityCode, string guid, string status)
        {
            //arrange
            PaymentModel model = new PaymentModel()
            {
                Amount           = amount,
                CardHolder       = creditCardHolder,
                CreditCardNumber = creditCardNumber,
                ExpirationDate   = DateTime.Parse(expiryDate),
                SecurityCode     = securityCode
            };

            CreditCardDetails creditCardDetails = new CreditCardDetails()
            {
                CardHolder       = creditCardHolder,
                CreditCardNumber = creditCardNumber,
                ExpirationDate   = DateTime.Parse(expiryDate),
                SecurityCode     = securityCode
            };

            PaymentState paymentState = new PaymentState()
            {
                Amount            = amount,
                CreditCardNo      = creditCardNumber,
                StateOfTransation = status,
                TransactionId     = Guid.Parse(guid)
            };

            mockMapper.Setup(x => x.Map <CreditCardDetails>(model)).Returns(creditCardDetails);

            mockDataDal.Setup(x => x.InsertCreditCardDetails(creditCardDetails));

            mockPaymentFactory.Setup(x => x.GetPaymentGateway(amount)).Returns(PaymentStatus.Processed);

            mockMapper.Setup(x => x.Map <PaymentState>(model)).Returns(paymentState);

            mockDataDal.Setup(x => x.InsertTransactionDetails(paymentState));

            //act

            sut = new ProcessGateway(mockPaymentFactory.Object, mockMapper.Object, mockDataDal.Object);

            sut.ProceessAmount(model);

            //Verify

            mockMapper.Verify(x => x.Map <CreditCardDetails>(model), Times.Once());

            mockDataDal.Verify(x => x.InsertCreditCardDetails(creditCardDetails), Times.Once());

            mockPaymentFactory.Verify(x => x.GetPaymentGateway(amount), Times.Once());

            mockMapper.Verify(x => x.Map <PaymentState>(model), Times.Once());

            mockDataDal.Verify(x => x.InsertTransactionDetails(paymentState), Times.Once());
        }
Example #2
0
        public void TestProceessAmount_WithStatus(decimal amount, string creditCardNumber, string creditCardHolder, string expiryDate,
                                                  string securityCode, string guid, string status)
        {
            PaymentModel model = new PaymentModel()
            {
                Amount           = amount,
                CardHolder       = creditCardHolder,
                CreditCardNumber = creditCardNumber,
                ExpirationDate   = DateTime.Parse(expiryDate),
                SecurityCode     = securityCode
            };

            CreditCardDetails creditCardDetails = new CreditCardDetails()
            {
                CardHolder       = creditCardHolder,
                CreditCardNumber = creditCardNumber,
                ExpirationDate   = DateTime.Parse(expiryDate),
                SecurityCode     = securityCode
            };

            PaymentState paymentState = new PaymentState()
            {
                Amount            = amount,
                CreditCardNo      = creditCardNumber,
                StateOfTransation = status,
                TransactionId     = Guid.Parse(guid)
            };

            mockMapper.Setup(x => x.Map <CreditCardDetails>(model)).Returns(creditCardDetails);

            mockDataDal.Setup(x => x.InsertCreditCardDetails(creditCardDetails));

            mockPaymentFactory.Setup(x => x.GetPaymentGateway(amount)).Returns(PaymentStatus.Processed);

            mockMapper.Setup(x => x.Map <PaymentState>(model)).Returns(paymentState);

            mockDataDal.Setup(x => x.InsertTransactionDetails(paymentState));

            sut = new ProcessGateway(mockPaymentFactory.Object, mockMapper.Object, mockDataDal.Object);

            var result = sut.ProceessAmount(model);

            Assert.NotNull(result);
            Assert.Equal(paymentState.Amount, result.Amount);
            Assert.Equal(paymentState.CreditCardNo, result.CreditCardNo);
            Assert.Equal(paymentState.TransactionId, result.TransactionId);
            Assert.Equal(paymentState.StateOfTransation, result.StateOfTransation);
        }
        public void Schema_Is_Not_Dropped_When_Name_Is_Ignored()
        {
            _gateway.RunQuery("IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'blah') exec sp_executesql N'CREATE SCHEMA blah';");
            _gateway.RunQuery("IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'bloobla') exec sp_executesql N'CREATE table blah.bloobla(id int)';");

            var args =
                $"/Action:Publish /TargetServerName:localhost /SourceFile:{Path.Combine(TestContext.CurrentContext.TestDirectory, "Dacpac.Dacpac")}  /TargetDatabaseName:Filters /p:DropObjectsNotInSource=True /p:AllowIncompatiblePlatform=true";

            var proc = new ProcessGateway(Path.Combine(TestContext.CurrentContext.TestDirectory, "SqlPackage.exe\\SqlPackage.exe"), args);

            proc.Run();
            proc.WasDeploySuccess();
            var tableCount = _gateway.GetInt("SELECT COUNT(*) FROM sys.schemas where name = 'blah';");

            Assert.AreEqual(1, tableCount, proc.Messages);
        }