Ejemplo n.º 1
0
        public void SessionStatisticsCannotBeCreatedWithoutParameters()
        {
            ISessionStatistics sessionStatistics;
            var creationResult = SessionStatisticsFactory.CreateSessionStatistics(null, out sessionStatistics);

            Assert.IsNull(sessionStatistics);
            Assert.AreEqual(SessionValidationResult.SessionNull, creationResult);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        /// <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;
        }