public void Should_return_false_if_the_same_setting_existed() { // Arrange var brand = Container.Resolve <BrandTestHelper>().CreateBrand(isActive: true); var repositorySettings = new PaymentGatewaySettings { Id = new Guid("50797305-5320-4086-BA1C-9D062DDF53D9"), BrandId = brand.Id, OnlinePaymentMethodName = "OnlinePaymentMethodName", PaymentGatewayName = "XPAY", Channel = 1, Status = Status.Active }; _paymentRepository.PaymentGatewaySettings.Add(repositorySettings); var savePaymentSettingsCommand = new SavePaymentGatewaysSettingsData { Brand = brand.Id, OnlinePaymentMethodName = "OnlinePaymentMethodName2", PaymentGatewayName = "XPAY", Channel = 1, EntryPoint = "http://domain.com" }; // Act var response = _commands.ValidateThatPaymentGatewaySettingsCanBeAdded(savePaymentSettingsCommand); //Assert response.IsValid.Should().Be(false); response.Errors.First().ErrorMessage.Should().Be("PaymentGatewaySettingAlreadyExists"); }
public void Can_add_the_same_onlinePaymentMethodName_in_different_brands() { // Arrange var brand = Container.Resolve <BrandTestHelper>().CreateBrand(isActive: true); var repositorySettings = new PaymentGatewaySettings { Id = new Guid("50797305-5320-4086-BA1C-9D062DDF53D9"), BrandId = brand.Id, OnlinePaymentMethodName = "OnlinePaymentMethodName", Status = Status.Active }; _paymentRepository.PaymentGatewaySettings.Add(repositorySettings); var brand2 = Container.Resolve <BrandTestHelper>().CreateBrand(isActive: true); var savePaymentSettingsCommand = new SavePaymentGatewaysSettingsData { Brand = brand2.Id, Channel = 1, PaymentGatewayName = "PG-NAME", OnlinePaymentMethodName = "OnlinePaymentMethodName", EntryPoint = "http://domain.com" }; // Act var response = _commands.ValidateThatPaymentGatewaySettingsCanBeAdded(savePaymentSettingsCommand); //Assert response.IsValid.Should().Be(true); }
public SavePaymentGatewaysSettingsResult Edit(SavePaymentGatewaysSettingsData model) { var validationResult = new SavePaymentGatewaySettingsValidator(_repository, false).Validate(model); if (!validationResult.IsValid) { throw new RegoValidationException(validationResult); } var setting = _repository.PaymentGatewaySettings .SingleOrDefault(x => x.Id == model.Id); if (setting == null) { throw new RegoException(string.Format("Payment gateway settings with id '{0}' were not found", model.Id)); } setting.OnlinePaymentMethodName = model.OnlinePaymentMethodName; setting.PaymentGatewayName = model.PaymentGatewayName; setting.Channel = model.Channel; setting.EntryPoint = model.EntryPoint; setting.Remarks = model.Remarks; setting.DateUpdated = _paymentQueries.GetBrandDateTimeOffset(model.Brand); setting.UpdatedBy = _actorInfoProvider.Actor.UserName; using (var scope = CustomTransactionScope.GetTransactionScope()) { _repository.SaveChanges(); _eventBus.Publish(new PaymentGatewaySettingUpdated { Id = setting.Id, UpdatedBy = setting.UpdatedBy, UpdatedDate = setting.DateUpdated.GetValueOrDefault(), OnlinePaymentMethodName = setting.OnlinePaymentMethodName, PaymentGatewayName = setting.PaymentGatewayName, Channel = setting.Channel, EntryPoint = setting.EntryPoint, BrandId = setting.BrandId }); scope.Complete(); } return(new SavePaymentGatewaysSettingsResult { PaymentGatewaySettingsId = setting.Id }); }
public SavePaymentGatewaysSettingsResult Add(SavePaymentGatewaysSettingsData model) { var validationResult = new SavePaymentGatewaySettingsValidator(_repository, true).Validate(model); if (!validationResult.IsValid) { throw new RegoValidationException(validationResult); } var setting = new PaymentGatewaySettings { Id = Guid.NewGuid(), BrandId = model.Brand, OnlinePaymentMethodName = model.OnlinePaymentMethodName, PaymentGatewayName = model.PaymentGatewayName, Channel = model.Channel, EntryPoint = model.EntryPoint, Remarks = model.Remarks, Status = Status.Inactive, DateCreated = _paymentQueries.GetBrandDateTimeOffset(model.Brand), CreatedBy = _actorInfoProvider.Actor.UserName }; _repository.PaymentGatewaySettings.Add(setting); using (var scope = CustomTransactionScope.GetTransactionScope()) { _repository.SaveChanges(); _eventBus.Publish(new PaymentGatewaySettingCreated { Id = setting.Id, CreatedBy = setting.CreatedBy, CreatedDate = setting.DateCreated, OnlinePaymentMethodName = setting.OnlinePaymentMethodName, PaymentGatewayName = setting.PaymentGatewayName, Channel = setting.Channel, EntryPoint = setting.EntryPoint, BrandId = setting.BrandId }); scope.Complete(); } return(new SavePaymentGatewaysSettingsResult { PaymentGatewaySettingsId = setting.Id }); }
public void Can_edit_paymentGatewaySettings() { // Arrange var brand = Container.Resolve <BrandTestHelper>().CreateBrand(isActive: true); var paymentGatewaySettings = Container.Resolve <PaymentTestHelper>().CreatePaymentGatewaySettings( brand.Id, enable: false, onlinePaymentMethodName: "TEST PAYMENT NAME1", paymentGatewayName: "XXPAY", channel: 99, entryPoint: "http://test.com/payment/issue", remarks: "ADD SETTING REMARK"); var editData = new SavePaymentGatewaysSettingsData { Id = paymentGatewaySettings.Id, Brand = paymentGatewaySettings.BrandId, OnlinePaymentMethodName = "Modified Name", PaymentGatewayName = "YYPAY", Channel = 100, EntryPoint = "http://changedDomain.com/payment/issue", Remarks = "Edit SETTING REMARK" }; // Act var response = _commands.Edit(editData); //Assert response.PaymentGatewaySettingsId.Should().Be(paymentGatewaySettings.Id); var settings = _paymentRepository.PaymentGatewaySettings.Single(x => x.Id == paymentGatewaySettings.Id); settings.Should().NotBeNull(); settings.BrandId.Should().NotBeEmpty(); settings.OnlinePaymentMethodName.ShouldBeEquivalentTo("Modified Name"); settings.PaymentGatewayName.ShouldBeEquivalentTo("YYPAY"); settings.Channel.ShouldBeEquivalentTo(100); settings.EntryPoint.ShouldBeEquivalentTo("http://changedDomain.com/payment/issue"); settings.Remarks.ShouldBeEquivalentTo("Edit SETTING REMARK"); settings.Status.Should().Be(Status.Inactive); settings.UpdatedBy.ShouldBeEquivalentTo(_actorInfoProvider.Actor.UserName); settings.DateUpdated.Should().BeCloseTo(DateTime.Now, 60000); settings.ActivatedBy.Should().BeNull(); settings.DateActivated.Should().NotHaveValue(); settings.DeactivatedBy.Should().BeNull(); settings.DateDeactivated.Should().NotHaveValue(); }
public void Should_return_false_if_onlinePaymentMethodName_isnull() { // Arrange var brand = Container.Resolve <BrandTestHelper>().CreateBrand(isActive: true); var savePaymentSettingsCommand = new SavePaymentGatewaysSettingsData { Brand = brand.Id, PaymentGatewayName = "XPAY", Channel = 1, EntryPoint = "http://domain.com" }; // Act var response = _commands.ValidateThatPaymentGatewaySettingsCanBeAdded(savePaymentSettingsCommand); //Assert response.IsValid.Should().Be(false); response.Errors.First().ErrorMessage.Should().Be(PaymentGatewaySettingsErrors.RequiredField.ToString()); }
public void Can_add_paymentGatewaySettings() { // Arrange var brand = Container.Resolve <BrandTestHelper>().CreateBrand(isActive: true); // Act var addData = new SavePaymentGatewaysSettingsData { Brand = brand.Id, OnlinePaymentMethodName = "TEST PAYMENT NAME1", PaymentGatewayName = "XXPAY", Channel = 99, EntryPoint = "http://test.com/payment/issue", Remarks = "ADD NEW SETTING REMARK" }; // Act var response = _commands.Add(addData); //Assert response.PaymentGatewaySettingsId.Should().NotBeEmpty(); var newSettingId = response.PaymentGatewaySettingsId; var settings = _paymentRepository.PaymentGatewaySettings.Single(x => x.Id == newSettingId); settings.Should().NotBeNull(); settings.BrandId.Should().NotBeEmpty(); settings.OnlinePaymentMethodName.ShouldBeEquivalentTo("TEST PAYMENT NAME1"); settings.PaymentGatewayName.ShouldBeEquivalentTo("XXPAY"); settings.Channel.ShouldBeEquivalentTo(99); settings.EntryPoint.ShouldBeEquivalentTo("http://test.com/payment/issue"); settings.Remarks.ShouldBeEquivalentTo("ADD NEW SETTING REMARK"); settings.Status.Should().Be(Status.Inactive); settings.CreatedBy.ShouldBeEquivalentTo(_actorInfoProvider.Actor.UserName); settings.DateCreated.Should().BeCloseTo(DateTime.Now, 60000); settings.UpdatedBy.Should().BeNull(); settings.DateUpdated.Should().NotHaveValue(); settings.ActivatedBy.Should().BeNull(); settings.DateActivated.Should().NotHaveValue(); settings.DeactivatedBy.Should().BeNull(); settings.DateDeactivated.Should().NotHaveValue(); }
public PaymentGatewaySettings CreatePaymentGatewaySettings(Guid brandId, bool enable = true, string onlinePaymentMethodName = "", string paymentGatewayName = "XPAY", int channel = -1, string entryPoint = "http://domain.com", string remarks = "some remarks") { if (string.IsNullOrEmpty(onlinePaymentMethodName)) { onlinePaymentMethodName = TestDataGenerator.GetRandomString(50); } if (channel == -1) { channel = TestDataGenerator.GetRandomNumber(99999, 1); } var model = new SavePaymentGatewaysSettingsData { Brand = brandId, OnlinePaymentMethodName = onlinePaymentMethodName, Channel = channel, PaymentGatewayName = paymentGatewayName, EntryPoint = entryPoint, Remarks = remarks }; var result = _paymentGatewaySettingsCommands.Add(model); var ps = _paymentRepository.PaymentGatewaySettings .Single(x => x.Id == result.PaymentGatewaySettingsId); if (enable) { _paymentGatewaySettingsCommands.Activate( new ActivatePaymentGatewaySettingsData { Id = ps.Id, Remarks = "remark" }); } return(ps); }
public ValidationResult ValidateThatPaymentGatewaySettingsCanBeEdited(SavePaymentGatewaysSettingsData model) { var validator = new SavePaymentGatewaySettingsValidator(_repository, false); return(validator.Validate(model)); }