Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 4
0
 /// <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;
 }
Ejemplo n.º 5
0
        /// <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;
        }
Ejemplo n.º 6
0
 public MailServiceTest()
 {
     _configuration = new MailServiceConfiguration("*****@*****.**", "smtp.gmail.com", 587, "passw0rd");
 }
Ejemplo n.º 7
0
 public MailService(IOptions <MailServiceConfiguration> mailSettings)
 {
     _mailServiceConfiguration = mailSettings.Value;
 }
Ejemplo n.º 8
0
 public MailService(MailServiceConfiguration mailServiceConfiguration,
                    IWebHostEnvironment environment)
 {
     _mailServiceConfiguration = mailServiceConfiguration;
     _environment = environment;
 }