public void AddNumberForEvent_With_event_not_found_return_message() { List <NotificationEntity> notificationEntities = new List <NotificationEntity>(); notificationEntities.Add(new NotificationEntity { RowKey = "track", ProgramId = 1, SportId = 1, Message = "this track event" }); notificationEntities.Add(new NotificationEntity { RowKey = "polar", ProgramId = 2, SportId = 2, Message = "this polar plunge event" }); Mock <IRefRepository> mockRefRepository = new Mock <IRefRepository>(); mockRefRepository.Setup(repository => repository.GetEventByName(notificationEntities[0].RowKey)).ReturnsAsync(notificationEntities[0]); mockRefRepository.Setup(repository => repository.GetEventByName(notificationEntities[1].RowKey)).ReturnsAsync(notificationEntities[1]); RegistrantWorker worker = new RegistrantWorker(_mockTrainingRepository.Object, mockRefRepository.Object); EventTextDto dto = new EventTextDto { Zip = "22193", City = "Dale City", From = "17035551212", Message = "Bad" }; var actual = worker.AddNumberForEvent(dto); Assert.Equal("You text Bad", actual.Result.Message); _mockTrainingRepository.Verify(mock => mock.AddEvent(It.IsAny <EventInformation>()), Times.Never); //Assert.Equal(email1.Email, actual.Email1); //Assert.Equal(email2.Id, actual.RegistrantEmail2Id); //Assert.Equal(email2.Email, actual.Email2); //Assert.Equal(email3.Id, actual.RegistrantEmail3Id); //Assert.Equal(email3.Email, actual.Email3); }
public static async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ILogger log) { log.LogInformation("C# PWSO receive sms message process."); var requestBody = await new StreamReader(req.Body).ReadToEndAsync(); log.LogInformation(requestBody); var formValues = requestBody.Split('&') .Select(value => value.Split('=')) .ToDictionary(pair => Uri.UnescapeDataString(pair[0]).Replace("+", " "), pair => Uri.UnescapeDataString(pair[1]).Replace("+", " ")); var dto = new EventTextDto { Message = formValues["Body"], From = formValues["From"], Zip = formValues["FromZip"], City = formValues["FromCity"] }; //var dto = new EventTextDto{Message = "Track", From = "17035901821", Zip = "22193", City = "Dale City"} ; string responseMessage; try { var connectionString = System.Environment.GetEnvironmentVariable("SQLAZURECONNSTR_TrainingModel"); var azureConnectionString = System.Environment.GetEnvironmentVariable("AzureStorageConnectionString"); var options = new DbContextOptionsBuilder <PwsodbContext>().UseSqlServer(connectionString ?? throw new InvalidOperationException()).Options; var context = new PwsodbContext(options); ITrainingRepository trainingRepository = new TrainingRepository(context); IRefRepository refRepository = new RefRepository(azureConnectionString); var worker = new RegistrantWorker(trainingRepository, refRepository); var notification = worker.AddNumberForEvent(dto); responseMessage = notification.Result.Message; } catch (Exception e) { log.LogError("Fatal Error: " + e.ToString()); throw; } responseMessage += ". This message is from the PWSO Notification System."; return(new OkObjectResult(responseMessage)); }
public RegistrantWorkerTest() { _mockTrainingRepository = new Mock <ITrainingRepository>(); _mockOrganizationRepository = new Mock <IOrganizationRepository>(); _athlete1 = new Athletes { Id = 67, BirthDate = new DateTime(1985, 1, 17), MF = "M", MedicalExpirationDate = new DateTime(2 / 22 / 2020) }; _athlete2 = new Athletes { Id = 219, BirthDate = new DateTime(1970, 10, 29), MF = "M", MedicalExpirationDate = new DateTime(8 / 5 / 2018) }; List <Athletes> athletes = new List <Athletes> { _athlete1, _athlete2 }; _mockOrganizationRepository.Setup(repository => repository.GetAllAthletes()).ReturnsAsync(athletes); _worker = new RegistrantWorker(_mockTrainingRepository.Object, _mockOrganizationRepository.Object); }
public void GetRegistrantsForSport_WithoutMock(int sportId, int expected) { IConfiguration config = new ConfigurationBuilder().AddJsonFile("appsettings.test.json").Build(); var trainingConnectionString = config["TrainingDatabase"]; var organizationConnectionString = config["OrganizationDatabase"]; var trainingOptions = new DbContextOptionsBuilder <PwsodbContext>().UseSqlServer(trainingConnectionString).Options; var organizationOptions = new DbContextOptionsBuilder <PwsoContext>().UseSqlServer(organizationConnectionString).Options; PwsodbContext trainingContext = new PwsodbContext(trainingOptions); PwsoContext organizationContext = new PwsoContext(organizationOptions); ITrainingRepository trainingRepository = new TrainingRepository(trainingContext); IOrganizationRepository organizationRepository = new OrganizationRepository(organizationContext); RegistrantWorker worker = new RegistrantWorker(trainingRepository, organizationRepository); //var actual = worker.GetRegistrantsForSport(sportId); //Assert.Equal(expected, actual.Result.Count); }
public static async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ILogger log) { log.LogInformation("C# HTTP trigger function processed a request."); string sport = req.Query["sportid"]; var requestBody = await new StreamReader(req.Body).ReadToEndAsync(); dynamic data = JsonConvert.DeserializeObject(requestBody); sport = sport ?? data?.name; var sportId = int.Parse(sport); try { var trainingConnectionString = System.Environment.GetEnvironmentVariable("SQLAZURECONNSTR_TrainingModel"); var organizationConnectionString = System.Environment.GetEnvironmentVariable("SQLCONNSTR_OrganizationModel"); var trainingOptions = new DbContextOptionsBuilder <PwsodbContext>().UseSqlServer(trainingConnectionString ?? throw new InvalidOperationException()).Options; var organizationOptions = new DbContextOptionsBuilder <PwsoContext>().UseSqlServer(organizationConnectionString ?? throw new InvalidOperationException()).Options; var trainingContext = new PwsodbContext(trainingOptions); var organizationContext = new PwsoContext(organizationOptions); ITrainingRepository trainingRepository = new TrainingRepository(trainingContext); IOrganizationRepository organizationRepository = new OrganizationRepository(organizationContext); var worker = new RegistrantWorker(trainingRepository, organizationRepository); var registrantList = await worker.GetRegistrantsForSport(sportId); return((ActionResult) new OkObjectResult(registrantList)); } catch (Exception ex) { return((ActionResult) new BadRequestObjectResult(ex)); } }