public void Then_The_Message_Is_Validated_And_ArgumentException_Thrown_And_Not_Sent_To_The_Api_If_Not_Valid() { //Arrange _validator.Setup(x => x.Validate(It.IsAny <UserData>())).Returns(false); //Act Assert.ThrowsAsync <ArgumentException>(async() => await _handler.Handle(new UserData())); //Assert _validator.Verify(x => x.Validate(It.IsAny <UserData>()), Times.Once); _marketoService.Verify(x => x.PushLead(It.IsAny <UserData>()), Times.Never); }
public async Task Handle_NormalValues_RegisterUser() { // arrange var cancellationToken = new CancellationToken(); var unitOfWorkFactory = new TransactionScopeUnitOfWorkFactory(); var dbContextFactory = new DefaultDbContextFactory(); var appOptionsAccessorMock = new Mock <IOptionsMonitor <AppOptions> >(); appOptionsAccessorMock.Setup(x => x.CurrentValue) .Returns(() => new AppOptions { AppUrl = "https://app.montr.net" }); var appOptionsAccessor = appOptionsAccessorMock.Object; var identityServiceFactory = new IdentityServiceFactory(); var classifierRepositoryFactoryBuilder = new ClassifierRepositoryFactoryBuilder(dbContextFactory) { UserTypeCode = ClassifierTypeCode.User }; var classifierRepositoryFactory = classifierRepositoryFactoryBuilder.Build(); // todo: test EmailConfirmationService /* * var dbMessageTemplateRepository = new DbMessageTemplateRepository(dbContextFactory); * var templateRenderer = new MustacheTemplateRenderer(dbMessageTemplateRepository); * var emailConfirmationService = new EmailConfirmationService(userManager, appUrlBuilder, new Mock<IEmailSender>().Object, templateRenderer); */ var appUrlBuilder = new DefaultAppUrlBuilder(appOptionsAccessor); var emailConfirmationServiceMock = new Mock <IEmailConfirmationService>(); var generator = new MasterDataDbGenerator(unitOfWorkFactory, dbContextFactory); var handler = new RegisterHandler(new NullLogger <RegisterHandler>(), classifierRepositoryFactory, identityServiceFactory.UserManager, identityServiceFactory.SignInManager, appUrlBuilder, emailConfirmationServiceMock.Object); using (var _ = unitOfWorkFactory.Create()) { await generator.EnsureClassifierTypeRegistered(Numerator.GetDefaultMetadata(), cancellationToken); await generator.EnsureClassifierTypeRegistered(User.GetDefaultMetadata(), cancellationToken); // act var command = new Register { Email = "*****@*****.**", Password = Guid.NewGuid().ToString() }; var result = await handler.Handle(command, cancellationToken); // assert Assert.IsTrue(result.Success); } }