public void SessionStatisticsCannotBeCreatedWithoutParameters() { ISessionStatistics sessionStatistics; var creationResult = SessionStatisticsFactory.CreateSessionStatistics(null, out sessionStatistics); Assert.IsNull(sessionStatistics); Assert.AreEqual(SessionValidationResult.SessionNull, creationResult); }
public void SessionStatistisCalculatesValidData() { ISession session; var sessionCreationResult = SessionFactory.CreateSession(new SessionParameters(), out session); Assert.AreEqual(ParametersValidationResult.Valid, sessionCreationResult); ISessionStatistics sessionStatistics; var sessionStatisticsCreationResult = SessionStatisticsFactory.CreateSessionStatistics(session, out sessionStatistics); Assert.AreEqual(SessionValidationResult.Valid, sessionStatisticsCreationResult); Assert.AreEqual(1, sessionStatistics.TakenTickets); Assert.AreEqual(0, sessionStatistics.PassedTickets); Assert.AreEqual(0, sessionStatistics.PassedTicketsPercentage); Assert.AreEqual(20, sessionStatistics.TakenQuestions); Assert.AreEqual(0, sessionStatistics.PassedQuestions); Assert.AreEqual(0, sessionStatistics.PassedQuestionsPercentage); var answers = session.Tickets.SelectMany(ticket => ticket.Questions).SelectMany(question => question.Answers); foreach (var answer in answers) { if (answer.IsRight) { answer.IsSelected = true; } } sessionStatisticsCreationResult = SessionStatisticsFactory.CreateSessionStatistics(session, out sessionStatistics); Assert.AreEqual(SessionValidationResult.Valid, sessionStatisticsCreationResult); Assert.AreEqual(1, sessionStatistics.TakenTickets); Assert.AreEqual(1, sessionStatistics.PassedTickets); Assert.AreEqual(100, sessionStatistics.PassedTicketsPercentage); Assert.AreEqual(20, sessionStatistics.TakenQuestions); Assert.AreEqual(20, sessionStatistics.PassedQuestions); Assert.AreEqual(100, sessionStatistics.PassedQuestionsPercentage); bool isSelected = false; foreach (var answer in answers) { if (answer.IsSelected) { answer.IsSelected = isSelected; isSelected = !isSelected; } } sessionStatisticsCreationResult = SessionStatisticsFactory.CreateSessionStatistics(session, out sessionStatistics); Assert.AreEqual(SessionValidationResult.Valid, sessionStatisticsCreationResult); Assert.AreEqual(1, sessionStatistics.TakenTickets); Assert.AreEqual(0, sessionStatistics.PassedTickets); Assert.AreEqual(0, sessionStatistics.PassedTicketsPercentage); Assert.AreEqual(20, sessionStatistics.TakenQuestions); Assert.AreEqual(10, sessionStatistics.PassedQuestions); Assert.AreEqual(50, sessionStatistics.PassedQuestionsPercentage); }
public void SessionStatisticsCannotBeCreatedWithInvalidParameters() { Session session = new Session(); ISessionStatistics sessionStatistics; var creationResult = SessionStatisticsFactory.CreateSessionStatistics(session, out sessionStatistics); Assert.IsNull(sessionStatistics); Assert.AreEqual(SessionValidationResult.NoTickets, creationResult); session.Tickets = new Ticket[] { new Ticket() }; creationResult = SessionStatisticsFactory.CreateSessionStatistics(session, out sessionStatistics); Assert.IsNull(sessionStatistics); Assert.AreEqual(SessionValidationResult.NoQuestions, creationResult); }
/// <summary> /// Invoked when this page is about to be displayed in a Frame. /// </summary> /// <param name="e">Event data that describes how this page was reached. /// This parameter is typically used to configure the page.</param> protected override async void OnNavigatedTo(NavigationEventArgs e) { HardwareButtons.BackPressed += HardwareButtons_BackPressed; if (e.NavigationMode != NavigationMode.New) { string sessionState = await SettingSaver.GetSettingFromFile(GlobalConstants.sesstionState); session = Serializer.DeserializeFromString <Session>(sessionState); } else { session = Serializer.DeserializeFromString <Session>(e.Parameter as string); } ISessionStatistics statistics; var creationResult = SessionStatisticsFactory.CreateSessionStatistics(session, out statistics); gridResults.DataContext = statistics; }