public async Task GetCitizenByCitizenIdSuccess() { //Arrange var helperHttpClientMoq = new Mock <ICitizenHttpClientHelper>(); var context = GetContext(); var citizenId = "1234567890"; var configurationMoq = new Mock <IConfiguration>(); var citizenData = new CitizenDataResponseModelBuilder().Build(); var httpClientCitizenDataResponse = JsonConvert.SerializeObject(citizenData); helperHttpClientMoq.Setup(x => x.GetCitizenDataByCprOrCitizenIdFromMomentumCoreAsync($"citizens/{citizenId}")) .Returns(Task.FromResult(new ResultOrHttpError <string, Error>(httpClientCitizenDataResponse))); var citizenService = new CitizenService(helperHttpClientMoq.Object, configurationMoq.Object, context.Object); //Act var result = await citizenService.GetCitizenByIdAsync(citizenId).ConfigureAwait(false); //Asert result.Should().NotBeNull(); result.IsError.Should().BeFalse(); result.Result.Should().BeEquivalentTo(citizenData); }
public async Task GetAllActiveCitizensSuccess() { //Arrange int pageNumber = 2; var helperHttpClientMoq = new Mock <ICitizenHttpClientHelper>(); var context = GetContext(); var configurationMoq = new Mock <IConfiguration>(); var citizenDataResponse = new List <CitizenDataResponseModel>() { new CitizenDataResponseModel(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()) }; var citizenList = new CitizenList(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), citizenDataResponse); helperHttpClientMoq.Setup(x => x.GetAllActiveCitizenDataFromMomentumCoreAsync("/search", pageNumber)) .Returns(Task.FromResult(new ResultOrHttpError <CitizenList, Error>(citizenList))); var citizenService = new CitizenService(helperHttpClientMoq.Object, configurationMoq.Object, context.Object); //Act var result = await citizenService.GetAllActiveCitizensAsync(pageNumber).ConfigureAwait(false); //Asert result.Should().NotBeNull(); result.IsError.Should().BeFalse(); result.Result.Should().BeEquivalentTo(citizenList); }
public void Add_writes_to_database() { var options = new DbContextOptionsBuilder <DatabaseContext>() .UseInMemoryDatabase(databaseName: "Add_writes_to_database") .Options; using (var context = new DatabaseContext(options)) { var citizen = new Citizen { Name = "Jorge", CPF = "12345678901", Id = 1 }; var service = new CitizenService(context, new CitizenRepository(context)); service.Add(citizen); } using (var context = new DatabaseContext(options)) { Assert.Single(context.Set <Citizen>().ToList()); Assert.Equal(1, context.Set <Citizen>().Single().Id); } }
public void Update_updates_item_from_database() { var options = new DbContextOptionsBuilder <DatabaseContext>() .UseInMemoryDatabase(databaseName: "Update_updates_item_from_database") .Options; using (var context = new DatabaseContext(options)) { var citizen = new Citizen { Name = "José", CPF = "34567890123", Id = 1 }; var service = new CitizenService(context, new CitizenRepository(context)); service.Add(citizen); Assert.Single(context.Set <Citizen>().ToList()); Assert.Equal("José", context.Set <Citizen>().Single().Name); citizen.Name = "Zé das Couves"; service.Update(1, citizen); Assert.Equal("Zé das Couves", context.Set <Citizen>().Single().Name); } }
public async Task GetCitizenByCitizenIdFails() { //Arrange var helperHttpClientMoq = new Mock <ICitizenHttpClientHelper>(); var context = GetContext(); var citizenId = "1234567890"; var configurationMoq = new Mock <IConfiguration>(); var citizenDataResponse = new CitizenDataResponseModel(citizenId, "test display name", "", "", "", "*****@*****.**", "+99999999", "", ""); var error = new Error("123456", new string[] { "Citizen with the supplied cpr no is not found" }, "MCA"); helperHttpClientMoq.Setup(x => x.GetCitizenDataByCprOrCitizenIdFromMomentumCoreAsync($"citizens/{citizenId}")) .Returns(Task.FromResult(new ResultOrHttpError <string, Error>(error, HttpStatusCode.BadRequest))); var citizenService = new CitizenService(helperHttpClientMoq.Object, configurationMoq.Object, context.Object); //Act var result = await citizenService.GetCitizenByIdAsync(citizenId).ConfigureAwait(false); //Asert result.IsError.Should().BeTrue(); result.Error.Errors[0].Should().Be("Citizen with the supplied cpr no is not found"); }
public async Task GetCitizenByCprSuccess() { //Arrange var helperHttpClientMoq = new Mock <ICitizenHttpClientHelper>(); var context = GetContext(); var cpr = "1234567890"; var configurationMoq = new Mock <IConfiguration>(); var citizenData = new CitizenDataResponseModel("testId1", "TestDisplay1", "givenname", "middlename", "initials", "*****@*****.**", "1234567891", "", "description", true, true); var httpClientCitizenDataResponse = JsonConvert.SerializeObject(citizenData); helperHttpClientMoq.Setup(x => x.GetCitizenDataByCprOrCitizenIdFromMomentumCoreAsync($"citizens/{cpr}")) .Returns(Task.FromResult(new ResultOrHttpError <string, Error>(httpClientCitizenDataResponse))); var citizenService = new CitizenService(helperHttpClientMoq.Object, configurationMoq.Object, context.Object); //Act var result = await citizenService.GetCitizenByCprAsync(cpr).ConfigureAwait(false); //Asert result.Should().NotBeNull(); result.IsError.Should().BeFalse(); result.Result.Should().BeEquivalentTo(citizenData); }
public async Task CreateJournalNoteAsyncSuccess() { //Arrange var helperHttpClientMoq = new Mock <ICitizenHttpClientHelper>(); var context = GetContext(); var configurationMoq = new Mock <IConfiguration>(); var requestModel = new JournalNoteResponseBuilder().Build(); helperHttpClientMoq.Setup(x => x.CreateJournalNoteInMomentumCoreAsync("journals/note", "testCitizenId", requestModel)) .Returns(Task.FromResult(new ResultOrHttpError <string, Error>(""))); var citizenService = new CitizenService(helperHttpClientMoq.Object, configurationMoq.Object, context.Object); //Act var result = await citizenService.CreateJournalNoteAsync("testCitizenId", requestModel).ConfigureAwait(false); //Asert result.Should().NotBeNull(); result.IsError.Should().BeFalse(); result.Result.Should().BeEquivalentTo(""); }
public async Task GetAllActiveCitizensFails() { //Arrange int pageNumber = 1; var helperHttpClientMoq = new Mock <ICitizenHttpClientHelper>(); var context = GetContext(); var configurationMoq = new Mock <IConfiguration>(); var error = new Error("123456", new string[] { "An Error Occured while retriving data of all active citizens" }, "MCA"); helperHttpClientMoq.Setup(x => x.GetAllActiveCitizenDataFromMomentumCoreAsync("/search", pageNumber)) .Returns(Task.FromResult(new ResultOrHttpError <CitizenList, Error>(error, HttpStatusCode.BadRequest))); var citizenService = new CitizenService(helperHttpClientMoq.Object, configurationMoq.Object, context.Object); //Act var result = await citizenService.GetAllActiveCitizensAsync(pageNumber).ConfigureAwait(false); //Asert result.Should().NotBeNull(); result.IsError.Should().BeTrue(); result.Error.Errors[0].Should().Be("An Error Occured while retriving data of all active citizens"); }
public async Task CreateJournalNoteAsyncFail() { //Arrange var helperHttpClientMoq = new Mock <ICitizenHttpClientHelper>(); var context = GetContext(); var configurationMoq = new Mock <IConfiguration>(); var requestModel = new JournalNoteResponseBuilder().Build(); var error = new Error("123456", new string[] { "Some error occured when creating note" }, "MCA"); helperHttpClientMoq.Setup(x => x.CreateJournalNoteInMomentumCoreAsync("journals/note", "testCitizenId", requestModel)) .Returns(Task.FromResult(new ResultOrHttpError <string, Error>(error, HttpStatusCode.BadRequest))); var citizenService = new CitizenService(helperHttpClientMoq.Object, configurationMoq.Object, context.Object); //Act var result = await citizenService.CreateJournalNoteAsync("testCitizenId", requestModel).ConfigureAwait(false); //Asert result.IsError.Should().BeTrue(); result.Error.Errors[0].Should().BeEquivalentTo("Some error occured when creating note"); }
public async Task GetAllActiveCitizensFailsWhenPageNoIsGreaterThanAvailableRecords() { //Arrange int pageNumber = 45; var helperHttpClientMoq = new Mock <ICitizenHttpClientHelper>(); var context = GetContext(); var configurationMoq = new Mock <IConfiguration>(); var error = new Error("123456", new string[] { "No Records are available for entered page number" }, "MEA"); helperHttpClientMoq.Setup(x => x.GetAllActiveCitizenDataFromMomentumCoreAsync("/search", pageNumber)) .Returns(Task.FromResult(new ResultOrHttpError <CitizenList, Error>(error, HttpStatusCode.BadRequest))); var citizenService = new CitizenService(helperHttpClientMoq.Object, configurationMoq.Object, context.Object); //Act var result = await citizenService.GetAllActiveCitizensAsync(pageNumber).ConfigureAwait(false); //Asert result.Should().NotBeNull(); result.IsError.Should().BeTrue(); result.Error.Errors[0].Should().Be("No Records are available for entered page number"); }
public void Delete_deletes_from_database() { var options = new DbContextOptionsBuilder <DatabaseContext>() .UseInMemoryDatabase(databaseName: "Delete_deletes_from_database") .Options; using (var context = new DatabaseContext(options)) { var citizen = new Citizen { Name = "Joana", CPF = "23456789012" }; var service = new CitizenService(context, new CitizenRepository(context)); service.Add(citizen); Assert.Single(context.Set <Citizen>().ToList()); var insertedCitizen = service.GetAll().First(); service.Delete(insertedCitizen.Id); Assert.Empty(context.Set <Citizen>().ToList()); } }
public async Task CreateJournalNoteAsyncSuccess() { //Arrange var helperHttpClientMoq = new Mock <ICitizenHttpClientHelper>(); var context = GetContext(); var configurationMoq = new Mock <IConfiguration>(); JournalNoteDocumentRequestModel[] requestDocumentModel = { new JournalNoteDocumentRequestModel() { Content = "testContent", ContentType = "testContentType", Name = "testDocumentName" } }; var requestModel = new JournalNoteRequestModel() { Cpr = "testCpr", Body = "testBody", Title = "testTitle", Type = JournalNoteType.SMS, Documents = requestDocumentModel }; helperHttpClientMoq.Setup(x => x.CreateJournalNoteInMomentumCoreAsync("journals/note", "testCitizenId", requestModel)) .Returns(Task.FromResult(new ResultOrHttpError <string, Error>(""))); var citizenService = new CitizenService(helperHttpClientMoq.Object, configurationMoq.Object, context.Object); //Act var result = await citizenService.CreateJournalNoteAsync("testCitizenId", requestModel).ConfigureAwait(false); //Asert result.Should().NotBeNull(); result.IsError.Should().BeFalse(); result.Result.Should().BeEquivalentTo(""); }
static void Main(string[] args) { DbClient client = new DbClient(new MongoClient()); var citizenService = new CitizenService(Client); var municipalityService = new MunicipalityService(Client); var locationService = new LocationService(Client, municipalityService); var testCenterService = new TestCenterService(Client); var testService = new TestService(Client); bool run = true; while (run) { Console.WriteLine("[A] Add new Citizen"); Console.WriteLine("[B] Add new TestCenter and TestCenterManagement"); Console.WriteLine("[C] Add new Test"); Console.WriteLine("[D] Add Test to all Citizens"); Console.WriteLine("[E] Add new Location"); Console.WriteLine("[F] Add Locations to all Citizens"); Console.WriteLine("[G] Seed data"); Console.WriteLine("[H] View active cases for Municipalities"); Console.WriteLine("[I] View active cases by Sex"); Console.WriteLine("[J] View active cases by Age"); Console.WriteLine("[K] View possible cases by Location three days prior"); Console.WriteLine("[X] Quit"); Console.WriteLine("INPUT: "); var userInput = Console.ReadKey(); switch (userInput.KeyChar) { case 'A': { Console.Write("Firstname: "); string firstname = Console.ReadLine(); Console.Write("Lastname: "); string lastname = Console.ReadLine(); Console.Write("SSN (XXXXXX-XXXX): "); string ssn = Console.ReadLine(); Console.Write("Age: "); string age = Console.ReadLine(); Console.Write("Sex: "); string sex = Console.ReadLine(); Console.Write("Municipality: "); string municipalityName = Console.ReadLine(); int municipalityId = municipalityService.GetId(municipalityName); var newCitizen = new Citizen { Firstname = firstname, Lastname = lastname, SSN = ssn, Age = int.Parse(age), Sex = sex, Tests = new List <Test>(), Location_id = new List <int>(), Municipality_id = municipalityId }; citizenService.AddCitizen(newCitizen); } break; case 'B': { Console.Write("Municipality: "); string municipalityName = Console.ReadLine(); Console.Write("Hours: "); int hours = int.Parse(Console.ReadLine()); Console.Write("Phonenumber: "); int phonenumber = int.Parse(Console.ReadLine()); Console.Write("Email: "); string email = Console.ReadLine(); testCenterService.AddTestCenter(municipalityName, hours, phonenumber, email); } break; case 'C': { Console.Write("Citizen-ID: "); int citizenId = int.Parse(Console.ReadLine()); Console.Write("TestCenter-ID: "); int testCenterId = int.Parse(Console.ReadLine()); if (Client.TestCenters.Find(t => t.TestCenterId == testCenterId).Any()) { Console.WriteLine("No TestCenter with ID {0} exists.", testCenterId); break; } else if (Client.Citizens.Find(c => c.CitizenId == citizenId).Any()) { Console.WriteLine("No Citizen with ID {0} exists.", citizenId); break; } testService.TestCitizen(citizenId, testCenterId); } break; case 'D': { testService.TestAllCitizens(); Console.WriteLine("All citizens tested."); } break; case 'E': { Console.Write("Citizen-ID: "); int citizenId = int.Parse(Console.ReadLine()); Console.Write("Address: "); string address = Console.ReadLine(); Console.Write("Zip: "); int zip = int.Parse(Console.ReadLine()); Console.Write("Municipality name: "); string municipalityName = Console.ReadLine(); locationService.AddLocation(citizenId, address, zip, municipalityName); } break; case 'F': { locationService.AddLocationToAllCitizen(); Console.WriteLine("All Citizen have now locations"); } break; case 'G': { Console.WriteLine("Sure you want to seed? Seeding will reset all Citizens and Municipalities[Y/N]"); string userKey = Console.ReadLine(); if (userKey.Contains('Y')) { Seed(); Console.WriteLine("Seeding done!"); } else { Console.WriteLine("Seeding canceled."); } } break; case 'H': { testCenterService.ActiveCovidCasesPerMunicipality(); } break; case 'I': { testCenterService.ActiveCovidCasesSex(); } break; case 'J': { Console.Write("Min age: "); int minAge = int.Parse(Console.ReadLine()); Console.Write("Max age: "); int maxAge = int.Parse(Console.ReadLine()); int cases = testCenterService.ActiveCovidCasesAge(minAge, maxAge); Console.WriteLine("Total number of cases: {0}", cases); } break; case 'K': { Console.Write("Infected citizen's ID: "); int citizenId = int.Parse(Console.ReadLine()); List <Citizen> citizens = citizenService.CitizensAtSameLocation(citizenId); Console.WriteLine("Citizens which has been the at the same location as an infected: "); foreach (var citizen in citizens) { Console.WriteLine("-------------------------------------------------------"); Console.WriteLine($"ID: {citizen.CitizenId}"); Console.WriteLine($"Name: {citizen.Firstname} {citizen.Lastname}"); Console.WriteLine($"SSN : {citizen.SSN}"); Console.WriteLine("-------------------------------------------------------"); } } break; case 'X': run = false; break; } Console.WriteLine("\nPress any key."); Console.ReadKey(); Console.Clear(); } }
public CitizenServiceTests() { CitizenService = new CitizenService(Mock.Of <ICountryRepository>(), Mock.Of <Entities.Repository.IWalletRepository>(), Mock.Of <ICitizenRepository>(), Mock.Of <IEntityService>(), Mock.Of <IConfigurationRepository>(), Mock.Of <ITransactionsService>(), Mock.Of <IWarningService>(), new PopupService(), Mock.Of <IWalletService>(), Mock.Of <IMessageService>(), Mock.Of <IEquipmentService>()); }