Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        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");
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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("");
        }
Ejemplo n.º 8
0
        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");
        }
Ejemplo n.º 9
0
        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");
        }
Ejemplo n.º 10
0
        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");
        }
Ejemplo n.º 11
0
        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());
            }
        }
Ejemplo n.º 12
0
        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("");
        }
Ejemplo n.º 13
0
        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();
            }
        }
Ejemplo n.º 14
0
 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>());
 }