public async Task GetByDateAsync_WithCorrectData_ShouldGetAllForTheCurrentDate()
        {
            string errorMessagePrefix = "LocationService AddLocationAsync() method does not work properly.";

            //Arrange
            var dbContext = MRSMobileDbContextInMemoryFactory.InitializeMobileContext();

            await SeedUserAsync(dbContext);
            await SeedDataAsync(dbContext);

            var locationService = GetLocationService(dbContext);

            //Act

            var actualResults = (await locationService.GetByDateAsync <LocationTestEntity>(DateTime.UtcNow)).OrderBy(x => x.CreatedOn).ToList();

            var expectedResults = Mapper.Map <List <LocationTestEntity> >(GetDummyLocations()).OrderBy(x => x.CreatedOn).ToList();

            Assert.IsTrue(actualResults.Count == expectedResults.Count, errorMessagePrefix + " " + "locations are not returned properly.");

            for (int i = 0; i < expectedResults.Count; i++)
            {
                var actualResult   = actualResults[0];
                var expectedResult = expectedResults[0];

                Assert.IsTrue(actualResult.Longitude == expectedResult.Longitude, errorMessagePrefix + " " + "locations are not returned properly.");
            }
        }
        public async Task GetAllAsync_WithCorrectData_ShouldReturnAllMessages()
        {
            string errorMessagePrefix = "MessageService GetAllAsync() method does not work properly.";

            //Arrange
            var dbContext = MRSMobileDbContextInMemoryFactory.InitializeMobileContext();

            await SeedDataAsync(dbContext);

            var messageService = GetMessageService(dbContext);

            //Act

            var actualResults = (await messageService.GetAllAsync <MessageTestEntity>()).OrderBy(x => x.CreatedOn).ToList();

            var expectedResults = Mapper.Map <List <MessageTestEntity> >(GetDummyMessages()).OrderBy(x => x.CreatedOn).ToList();

            //Assert
            Assert.IsTrue(actualResults.Count == expectedResults.Count, errorMessagePrefix + " " + "messages are not returned properly.");

            for (int i = 0; i < expectedResults.Count; i++)
            {
                var actualResult   = actualResults[0];
                var expectedResult = expectedResults[0];

                Assert.IsTrue(actualResult.Message == expectedResult.Message, errorMessagePrefix + " " + "messages are not returned properly.");
            }
        }
        public async Task GetLastMessageAsync_WithZeroData_ShouldnReturnMessage()
        {
            string errorMessagePrefix = "MessageService GetLastMessageAsync() method does not work properly.";

            //Arrange
            var dbContext = MRSMobileDbContextInMemoryFactory.InitializeMobileContext();

            var messageService = GetMessageService(dbContext);

            //Act

            var actualResult = (await messageService.GetLastMessageAsync <MessageTestEntity>());

            //Assert
            Assert.IsTrue(actualResult == null, errorMessagePrefix + " " + "messages are not returned properly.");
        }
        public async Task GetAllMessagesByDateAsync_WithZeroData_ShouldReturnZeroMessages()
        {
            string errorMessagePrefix = "MessageService GetAllMessagesByDateAsync() method does not work properly.";

            //Arrange
            var dbContext = MRSMobileDbContextInMemoryFactory.InitializeMobileContext();

            var messageService = GetMessageService(dbContext);

            //Act

            var actualResults = (await messageService.GetAllMessagesByDateAsync <MessageTestEntity>(DateTime.UtcNow)).OrderBy(x => x.CreatedOn).ToList();

            var expectedResults = Mapper.Map <List <MessageTestEntity> >(GetDummyMessages()).OrderBy(x => x.CreatedOn).ToList();

            //Assert
            Assert.IsTrue(actualResults.Count == 0, errorMessagePrefix + " " + "should be 0 messages but go one or more.");
        }
        public async Task GetPolygonsByUserIdAsync_WithZeroData_ShouldReturnAllPolygonsByUserId()
        {
            string errorMessagePrefix = "PolygonService AddPolygonAsync() method does not work properly.";

            //Arrange
            var dbContext = MRSMobileDbContextInMemoryFactory.InitializeSpaContext();

            await SeedUserAsync(dbContext);

            var polygonService = GetPolygonService(dbContext);


            //Act
            var userId = dbContext.Users.FirstOrDefault().Id;

            var actualResults = (await polygonService.GetPolygonsByUserIdAsync <PolygonTestEntity>(userId)).OrderBy(x => x.CreatedOn).ToList();


            var expectedResults = Mapper.Map <List <PolygonTestEntity> >(GetDummyPolygons());

            Assert.IsTrue(actualResults.Count == 0, errorMessagePrefix + " " + "polygons are not returned properly.");
        }