public async Task RegisterAsync_GivenValidUserData_Successful() { // Arrange. var mockWebHostEnvironment = new Mock <IWebHostEnvironment>(); mockWebHostEnvironment.Setup(environment => environment.WebRootPath).Returns(string.Empty); var mockMailServiceConfig = new MailServiceConfiguration { RegisteredUserNotificationFilename = string.Empty }; var jwtConfiguration = CreateJwtConfiguration(); var userService = new UserService( mapper: Mapper, tripFlipDbContext: TripFlipDbContext, jwtConfiguration: jwtConfiguration, currentUserService: CurrentUserService, environment: mockWebHostEnvironment.Object, mailService: null, mailServiceConfiguration: mockMailServiceConfig); var registerUserDto = GetRegisterUserDto(); var comparer = new UserDtoComparer(); // Act. var result = await userService.RegisterAsync(registerUserDto); // Assert. Assert.AreEqual(0, comparer.Compare(_expectedRegisteredUser, result)); }
/// <summary> /// Sends an email to the newly registered user notifying him /// about successful registration act. /// </summary> /// <param name="email">An email of a user to send notification to.</param> /// <param name="environment">Instance of web host environment.</param> /// <param name="mailService">Instance of mail service.</param> /// <param name="mailServiceConfiguration">Object that encapsulates configurations for /// mail service.</param> public static async Task NotifyRegisteredUserAsync( string email, IWebHostEnvironment environment, IMailService mailService, MailServiceConfiguration mailServiceConfiguration) { string notificationFilepath = Path.Combine( environment.WebRootPath, mailServiceConfiguration.RegisteredUserNotificationFilename); bool fileExists = File.Exists(notificationFilepath); if (fileExists) { string notificationHtmlText = await File.ReadAllTextAsync(notificationFilepath); var appEmailAddress = new EmailAddress( mailServiceConfiguration.AppFromEmail, mailServiceConfiguration.AppFromName); var userEmailAddress = new EmailAddress(email); var emailMessage = EmailMessageBuilder.Build( from: appEmailAddress, to: userEmailAddress, subject: Constants.OnRegistrationNotificationEmailSubject, htmlContent: notificationHtmlText, plainTextContent: null); await mailService.SendAsync(emailMessage); } }
public static void BindSendGridConfiguration( this IServiceCollection services, IConfiguration configuration) { var mailServiceConfiguration = new MailServiceConfiguration(); configuration.GetSection(Constants.MailServiceSection).Bind(mailServiceConfiguration); services.AddSingleton(mailServiceConfiguration); }
/// <summary> /// Initializes database context and automapper. /// </summary> /// <param name="mapper">IMapper instance.</param> /// <param name="tripFlipDbContext">TripFlipDbContext instance.</param> /// <param name="jwtConfiguration">JwtConfiguration instance.</param> /// <param name="currentUserService">ICurrentUserService instance.</param> /// <param name="environment">Instance of web host environment.</param> /// <param name="mailService">Instance of mail service.</param> /// <param name="mailServiceConfiguration">Object that encapsulates configurations for /// mail service.</param> public UserService(IMapper mapper, TripFlipDbContext tripFlipDbContext, JwtConfiguration jwtConfiguration, ICurrentUserService currentUserService, IWebHostEnvironment environment, IMailService mailService, MailServiceConfiguration mailServiceConfiguration) { _mapper = mapper; _tripFlipDbContext = tripFlipDbContext; _jwtConfiguration = jwtConfiguration; _currentUserService = currentUserService; _environment = environment; _mailService = mailService; _mailServiceConfiguration = mailServiceConfiguration; }
/// <summary> /// Initializes db context, HttpClient factory and Google API configuration fields. /// </summary> /// <param name="tripFlipDbContext">Instance of db context.</param> /// <param name="httpClientFactory">Instance of HttpClient factory.</param> /// <param name="googleApiConfiguration">Object that encapsulates configurations for /// Google API.</param> /// <param name="jwtConfiguration">Object that encapsulates configurations for JWT.</param> /// <param name="environment">Instance of web host environment.</param> /// <param name="mailService">Instance of mail service.</param> /// <param name="mailServiceConfiguration">Object that encapsulates configurations for /// mail service.</param> public GoogleApiUserService( TripFlipDbContext tripFlipDbContext, IHttpClientFactory httpClientFactory, GoogleApiConfiguration googleApiConfiguration, JwtConfiguration jwtConfiguration, IWebHostEnvironment environment, IMailService mailService, MailServiceConfiguration mailServiceConfiguration) { _tripFlipDbContext = tripFlipDbContext; _httpClientFactory = httpClientFactory; _googleApiConfiguration = googleApiConfiguration; _jwtConfiguration = jwtConfiguration; _environment = environment; _mailService = mailService; _mailServiceConfiguration = mailServiceConfiguration; }
public MailServiceTest() { _configuration = new MailServiceConfiguration("*****@*****.**", "smtp.gmail.com", 587, "passw0rd"); }
public MailService(IOptions <MailServiceConfiguration> mailSettings) { _mailServiceConfiguration = mailSettings.Value; }
public MailService(MailServiceConfiguration mailServiceConfiguration, IWebHostEnvironment environment) { _mailServiceConfiguration = mailServiceConfiguration; _environment = environment; }