Exemplo n.º 1
0
        public EntriesControllerTest(TestFixture fixture)
        {
            _context = fixture.Context;
            var logger = fixture.CreateMockLogger <EntriesController>();

            _controller = new EntriesController(_context, logger);
        }
Exemplo n.º 2
0
        public async Task Delete_EntryRemoved_ReturnsOk()
        {
            _service.Setup(s =>
                           s.Delete(It.IsAny <long>(), It.IsAny <long>()));

            _controller = new EntriesController(_logger, _service.Object);

            var result = await _controller.Delete(1L, 1L);

            result.Should().BeOfType <OkResult>();
        }
        public void ViewUpdate()
        {
            // Arrange
            EntriesController controller = new EntriesController();

            // Act
            ViewResult result = controller.ViewDelete(null) as ViewResult;

            // Assert
            Assert.IsNotNull(result);
        }
        public void AddEdit()
        {
            // Arrange
            EntriesController controller = new EntriesController();

            // Act
            ViewResult result = controller.AddEdit(null) as ViewResult;

            // Assert
            Assert.IsNotNull(result);
        }
Exemplo n.º 5
0
        public async Task Add_JournalNotFound_ReturnsBadRequest()
        {
            _service.Setup(s =>
                           s.Add(It.IsAny <long>(), It.IsAny <EntryDto>()))
            .ReturnsAsync(() => null);

            _controller = new EntriesController(_logger, _service.Object);

            var result = await _controller.Add("UserId", 1L, new EntryDto());

            result.Should().BeOfType <BadRequestResult>();
        }
Exemplo n.º 6
0
        public async Task Update_EntryNotFound_ReturnsBadRequest()
        {
            _service.Setup(s =>
                           s.Update(It.IsAny <EntryDto>()))
            .ReturnsAsync(() => null);

            _controller = new EntriesController(_logger, _service.Object);

            var result = await _controller.Update(new EntryDto());

            result.Should().BeOfType <BadRequestResult>();
        }
Exemplo n.º 7
0
        public void TestConstructor_PassEverythingCorrectly_ShouldInitializeCorrectly()
        {
            // Arrange
            var mockedService = new Mock <IEntryService>();
            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

            // Act
            var controller = new EntriesController(mockedService.Object, mockedAuthenticationProvider.Object);

            // Assert
            Assert.IsNotNull(controller);
        }
Exemplo n.º 8
0
        public async Task GetOne_EntryNotFound_ReturnsNotFound()
        {
            _service.Setup(s =>
                           s.GetById(It.IsAny <long>()))
            .ReturnsAsync(() => null);

            _controller = new EntriesController(_logger, _service.Object);

            var result = await _controller.GetOne(1L);

            result.Should().BeOfType <NotFoundResult>();
        }
Exemplo n.º 9
0
        public async Task GetAll_JournalFound_ReturnsOk()
        {
            _service.Setup(s =>
                           s.GetAllByJournal(It.IsAny <long>()))
            .ReturnsAsync(new List <EntryDto>());

            _controller = new EntriesController(_logger, _service.Object);

            var result = await _controller.GetAll(1L);

            result.Should().BeOfType <OkObjectResult>();
        }
Exemplo n.º 10
0
        public async Task GetOne_EntryFound_ReturnsOk()
        {
            _service.Setup(s =>
                           s.GetById(It.IsAny <long>()))
            .ReturnsAsync(new EntryDto {
                Title = "Entry"
            });

            _controller = new EntriesController(_logger, _service.Object);

            var result = await _controller.GetOne(1L);

            result.Should().BeOfType <OkObjectResult>();
        }
Exemplo n.º 11
0
        public async Task Update_EntryFound_Updated_ReturnsOk()
        {
            var entry = new EntryDto();

            _service.Setup(s =>
                           s.Update(It.IsAny <EntryDto>()))
            .ReturnsAsync(entry);

            _controller = new EntriesController(_logger, _service.Object);

            var result = await _controller.Update(entry);

            result.Should().BeOfType <OkObjectResult>();
        }
Exemplo n.º 12
0
        public async Task Add_JournalFound_EntryAdded_ReturnsOk()
        {
            var entry = new EntryDto {
                Title = "Blah"
            };

            _service.Setup(s =>
                           s.Add(It.IsAny <long>(), It.IsAny <EntryDto>()))
            .ReturnsAsync(entry);

            _controller = new EntriesController(_logger, _service.Object);

            var result = await _controller.Add("UserId", 1L, entry);

            result.Should().BeOfType <CreatedResult>();
        }
Exemplo n.º 13
0
        public void TestNewEntry_ShouldCallAuthenticationProviderCurrentUserId()
        {
            // Arrange
            var model = new NewEntryViewModel();

            var mockedService = new Mock <IEntryService>();
            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

            var controller = new EntriesController(mockedService.Object, mockedAuthenticationProvider.Object);

            // Act
            controller.NewEntry(model);

            // Assert
            mockedAuthenticationProvider.Verify(p => p.CurrentUserId, Times.Once);
        }
Exemplo n.º 14
0
        public void TestNewEntry_ShouldRedirectCorrectly(int logId)
        {
            // Arrange
            var model = new NewEntryViewModel {
                LogId = logId
            };

            var mockedService = new Mock <IEntryService>();
            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

            var controller = new EntriesController(mockedService.Object, mockedAuthenticationProvider.Object);

            // Act, Assert
            controller
            .WithCallTo(c => c.NewEntry(model))
            .ShouldRedirectTo((LogsController c) => c.Details(logId, It.IsAny <int>(), It.IsAny <int>()));
        }
Exemplo n.º 15
0
        private EntriesController CreateEntriesController(BudBudgetContext context, int userId = 0)
        {
            var entriesController = new EntriesController(context, Fixture.mapper);

            var claims = new List <Claim>
            {
                new Claim("UserId", userId.ToString())
            };
            var claimsIdentity = new ClaimsIdentity(claims);

            entriesController.ControllerContext             = new ControllerContext();
            entriesController.ControllerContext.HttpContext = new DefaultHttpContext {
                User = new ClaimsPrincipal(claimsIdentity)
            };

            return(entriesController);
        }
Exemplo n.º 16
0
        public void TestNewEntry_ModelStateIsNotValid_ShouldNotCallAuthenticationProviderCurrentUserId()
        {
            // Arrange
            var model = new NewEntryViewModel();

            var mockedService = new Mock <IEntryService>();
            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

            var controller = new EntriesController(mockedService.Object, mockedAuthenticationProvider.Object);

            controller.ModelState.AddModelError("", "");

            // Act
            controller.NewEntry(model);

            // Assert
            mockedAuthenticationProvider.Verify(p => p.CurrentUserId, Times.Never);
        }
Exemplo n.º 17
0
        public void TestEditEntry_ShouldSetViewModelCorrectly(int entryId, string content)
        {
            // Arrange
            var mockedService  = new Mock <IEntryService>();
            var mockedProvider = new Mock <IAuthenticationProvider>();

            var controller = new EntriesController(mockedService.Object, mockedProvider.Object);

            var model = new LogEntryViewModel {
                EntryId = entryId, Content = content
            };

            // Act, Assert
            controller
            .WithCallTo(c => c.EditEntry(model))
            .ShouldRenderPartialView("_EntryContentPartial")
            .WithModel <LogEntryViewModel>(m => Assert.AreSame(model, m));
        }
Exemplo n.º 18
0
        public void TestEditEntry_ShouldCallEntryServiceEditEntryCorrectly(int entryId, string content)
        {
            // Arrange
            var mockedService  = new Mock <IEntryService>();
            var mockedProvider = new Mock <IAuthenticationProvider>();

            var controller = new EntriesController(mockedService.Object, mockedProvider.Object);

            var model = new LogEntryViewModel {
                EntryId = entryId, Content = content
            };

            // Act
            controller.EditEntry(model);

            // Assert
            mockedService.Verify(s => s.EditEntry(entryId, content), Times.Once);
        }
Exemplo n.º 19
0
        private static EntriesController GetEntriesControllerWithUser(EntriesService service)
        {
            var user = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
            {
                new Claim(ClaimTypes.NameIdentifier, "1")
            }
                                                              )
                                           );

            var controller = new EntriesController(service);

            controller.ControllerContext = new ControllerContext()
            {
                HttpContext = new DefaultHttpContext()
                {
                    User = user
                }
            };
            return(controller);
        }
Exemplo n.º 20
0
        /// <summary>
        /// Used to populate quick preview listboxes
        /// </summary>
        private void GenerateQuickPreview()
        {
            DateTime          to = DateTime.Now;
            DateTime          from;
            List <Entry>      entries;
            EntriesController eController = new EntriesController();
            EntriesFilter     filter      = new EntriesFilter(DateTime.Now, to); // using DateTime.Now just to initialize

            // Today, past 7, past 30
            int[]     decrease = { 0, -7, -30 };
            ListBox[] lbs      = { today_lb, pastSevenDays_lb, pastThrityDays_lb };
            for (int i = 0; i < decrease.Length; i++)
            {
                from             = to.AddDays(decrease[i]).AddHours(to.Hour * -1).AddMinutes(to.Minute * -1).AddSeconds(to.Second * -1);
                filter.from_date = from;
                entries          = eController.FilterEntriesForChart(filter);
                PopulateListBox(entries, lbs[i]);
            }

            // Past 6 months
            from             = to.AddMonths(-6).AddHours(to.Hour * -1).AddMinutes(to.Minute * -1).AddSeconds(to.Second * -1);
            filter.from_date = from;
            entries          = eController.FilterEntriesForChart(filter);
            PopulateListBox(entries, pastSixMonths_lb);

            // Past year
            from             = to.AddYears(-1).AddHours(to.Hour * -1).AddMinutes(to.Minute * -1).AddSeconds(to.Second * -1);
            filter.from_date = from;
            entries          = eController.FilterEntriesForChart(filter);
            PopulateListBox(entries, pastYear_lb);

            // This year
            from             = to.AddMonths((to.Month - 1) * -1).AddDays((to.Day - 1) * -1).AddHours(to.Hour * -1).AddMinutes(to.Minute * -1).AddSeconds(to.Second * -1);
            filter.from_date = from;
            entries          = eController.FilterEntriesForChart(filter);
            PopulateListBox(entries, thisYear_lb);

            // All time
            entries = eController.GetAllEntries();
            PopulateListBox(entries, allTime_lb);
        }
Exemplo n.º 21
0
        public void TestNewEntry_ShouldCallEntryServiceAddEntryToLogCorrectly(int logId, string content, string userId)
        {
            // Arrange
            var model = new NewEntryViewModel
            {
                LogId   = logId,
                Content = content
            };

            var mockedService = new Mock <IEntryService>();
            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

            mockedAuthenticationProvider.Setup(p => p.CurrentUserId).Returns(userId);

            var controller = new EntriesController(mockedService.Object, mockedAuthenticationProvider.Object);

            // Act
            controller.NewEntry(model);

            // Assert
            mockedService.Verify(s => s.AddEntryToLog(content, logId, userId), Times.Once);
        }
Exemplo n.º 22
0
        public void Initialize()
        {
            _context = new JoggingDbContext(new DbContextOptionsBuilder <JoggingDbContext>().UseInMemoryDatabase().Options);
            _context.Database.EnsureDeleted();//make sure we don't share state between tests

            _context.Users.Add(_regularUser1 = new User()
            {
                Id = 123, Email = "[email protected]", FirstName = "Joe", LastName = "User", Role = UserRole.User
            });
            _context.Users.Add(_regularUser2 = new User()
            {
                Id = 234, Email = "[email protected]", FirstName = "Moe", LastName = "User", Role = UserRole.User
            });
            _context.Users.Add(_adminUser = new User()
            {
                Id = 345, Email = "*****@*****.**", FirstName = "Le", LastName = "Admin", Role = UserRole.Admin
            });
            _context.SaveChanges();

            _userService = new DummyUserService(_regularUser1);
            _controller  = new EntriesController(_context, _userService);
        }
Exemplo n.º 23
0
        public void TestEditEntry_ShouldSetViewModelContentCorrectly(int entryId, string content)
        {
            // Arrange
            var mockedService = new Mock <IEntryService>();

            mockedService.Setup(s => s.EditEntry(It.IsAny <int>(), It.IsAny <string>()))
            .Returns(new LogEntry {
                Content = content
            });

            var mockedProvider = new Mock <IAuthenticationProvider>();

            var controller = new EntriesController(mockedService.Object, mockedProvider.Object);

            var model = new LogEntryViewModel {
                EntryId = entryId, Content = content
            };

            // Act
            var result = controller.EditEntry(model);

            // Assert
            Assert.AreEqual(content, ((LogEntryViewModel)result.Model).Content);
        }
Exemplo n.º 24
0
        public void TestEditEntry_ModelStateIsNotValid_ShouldNotCallEntryServiceEditEntryCorrectly(int entryId, string content)
        {
            // Arrange
            var mockedService = new Mock <IEntryService>();

            mockedService.Setup(s => s.EditEntry(It.IsAny <int>(), It.IsAny <string>()))
            .Returns(new LogEntry());

            var mockedProvider = new Mock <IAuthenticationProvider>();

            var controller = new EntriesController(mockedService.Object, mockedProvider.Object);

            controller.ModelState.AddModelError("", "");

            var model = new LogEntryViewModel {
                EntryId = entryId, Content = content
            };

            // Act
            controller.EditEntry(model);

            // Assert
            mockedService.Verify(s => s.EditEntry(It.IsAny <int>(), It.IsAny <string>()), Times.Never);
        }
        public async void CreateAllResultsFiles(int meetId, string folderPath)
        {
            if (folderPath.Last() != '\\')
            {
                folderPath += "\\";
            }

            // Before building the results file delete all existing results files
            DeleteAllResultsFiles(folderPath, ".lff");

            EventsController  eventContoller    = new EventsController();
            AthleteController athleteController = new AthleteController();
            EntriesController entriesController = new EntriesController();
            MarksController   markController    = new MarksController();

            List <ResultsHeader> resultsHeader = new List <ResultsHeader>();

            var eventsList = eventContoller.GetEventsByMeetId(meetId);

            foreach (Event item in eventsList)
            {
                resultsHeader.Add(new ResultsHeader
                {
                    EventId           = item.EventId,
                    EventNum          = item.EventNum,
                    RoundNum          = item.FlightNum,
                    FlightNum         = item.FlightNum,
                    EventName         = item.EventName,
                    MeasurementSystem = item.MeasurementType
                });
            }

            StringBuilder headerText    = new StringBuilder();
            StringBuilder eventFileName = new StringBuilder();

            foreach (ResultsHeader item in resultsHeader)
            {
                // Build the file name for the event results file
                eventFileName.Append(
                    String.Concat(
                        folderPath,
                        item.EventNum.ToString().Length < 3 ? item.EventNum.ToString().PadLeft(3, '0') : item.EventNum.ToString(), "-",
                        item.RoundNum.ToString(), "-",
                        item.FlightNum.ToString(), ".lff"));

                // Adds the header to each file
                using (StreamWriter writer = new StreamWriter(eventFileName.ToString(), true))
                {
                    headerText.Append(String.Concat(
                                          item.EventNum.ToString(), ",",
                                          item.RoundNum.ToString(), ",",
                                          item.FlightNum.ToString(), ",",
                                          item.EventName, ",",
                                          item.MeasurementSystem, Environment.NewLine));

                    await writer.WriteAsync(headerText.ToString());

                    writer.Close();
                    headerText.Clear();
                }

                await AddAthleteResults(
                    eventFileName.ToString(),
                    item.EventId,
                    athleteController,
                    entriesController,
                    markController);

                // Clear the StringBuilder for the next file name
                eventFileName.Clear();
            }
        }
 public void TestGetEntryByEntryId()
 {
     EntriesController entryController = new EntriesController();
     var entry = entryController.GetEntryByEntryId(5);
 }
        // Add athlete results for specific event
        async Task AddAthleteResults(string filePath,
                                     int eventId,
                                     AthleteController athleteController,
                                     EntriesController entriesController,
                                     MarksController markController)
        {
            var entriesInfoList = entriesController.GetEntriesByEventId(eventId);
            List <ResultsEntry> entryResultsList = new List <ResultsEntry>();

            foreach (Entry item in entriesInfoList)
            {
                entryResultsList.Add(new ResultsEntry
                {
                    FlightPlace = item.FlightPlace.ToString(),
                    AthleteId   = item.AthleteID.ToString(),
                    // CompetePosition = item.CompetePosition.ToString(), This will has the potential to cause errors in the Field Lynx application
                    EventPlace  = string.Empty, // Not concerned about event place for mvp
                    LastName    = item.LastName,
                    FirstName   = item.FirstName,
                    Affiliation = item.TeamName,
                    Wind        = string.Empty // Not concerned about wind for mvp
                });

                // Add the marks to the entry result
                if (item.Marks.Count() > 0)
                {
                    StringBuilder marksString = new StringBuilder();

                    foreach (Mark markItem in item.Marks)
                    {
                        marksString.Append(String.Concat(markItem.mark, ","));
                    }

                    entryResultsList.Last().Mark = marksString.ToString();
                }
                else
                {
                    entryResultsList.Last().Mark = String.Empty;
                }
            }

            StringBuilder entryText = new StringBuilder();

            foreach (ResultsEntry item in entryResultsList)
            {
                // Adds the header to each file
                using (StreamWriter writer = new StreamWriter(filePath, true))
                {
                    entryText.Append(String.Concat(
                                         item.FlightPlace.ToString(), ",",
                                         item.AthleteId.ToString(), ",",
                                         String.Empty, ",", // This is where compete position would be
                                         item.EventPlace, ",",
                                         item.LastName, ",",
                                         item.FirstName, ",",
                                         item.Affiliation, ",",
                                         item.Mark,
                                         item.Wind, ",", Environment.NewLine));

                    await writer.WriteAsync(entryText.ToString());

                    entryText.Clear();
                    writer.Close();
                }
            }
        }
 public void TestGetEntriesByEventId()
 {
     EntriesController entryContoller = new EntriesController();
     var entriesList = entryContoller.GetEntriesByEventId(7);
 }