Example #1
0
        public void Validate_InvalidAnswerType_Throw()
        {
            // arrange
            var container = CreateContainer();

            var wrapper = new PollAnswerValidatorWrapper(container);

            var instruction = new MultipleChoiceInstruction(new[] { "A", "B" }, null);
            var answer      = new SingleChoiceAnswer("A");

            // act
            Assert.ThrowsAny <Exception>(() => wrapper.Validate(instruction, answer));
        }
Example #2
0
        public async Task AggregateAnswers_InvalidAnswer_Throw()
        {
            // arrange
            var container = CreateContainer();

            var wrapper = new PollAnswerAggregatorWrapper(container);

            var instruction = new MultipleChoiceInstruction(new[] {"A", "B"}, null);
            var answers = new[] {new PollAnswerWithKey(new SingleChoiceAnswer("A"), "1")};

            // act
            await Assert.ThrowsAnyAsync<Exception>(async () => await wrapper.AggregateAnswers(instruction, answers));
        }
Example #3
0
        public async Task AggregateAnswers_ValidInstruction_ReturnResult()
        {
            // arrange
            var container = CreateContainer();

            var wrapper = new PollAnswerAggregatorWrapper(container);
            var instruction = new MultipleChoiceInstruction(new[] {"A", "B"}, null);
            var answers = new[] {new PollAnswerWithKey(new MultipleChoiceAnswer(new[] {"A"}), "1")};

            // act
            var result = await wrapper.AggregateAnswers(instruction, answers);

            // assert
            Assert.IsType<SelectionPollResults>(result);
        }
Example #4
0
        public void Validate_InvalidAnswer_ReturnFalse()
        {
            // arrange
            var container = CreateContainer();

            var wrapper = new PollAnswerValidatorWrapper(container);

            var instruction = new MultipleChoiceInstruction(new[] { "A", "B" }, null);
            var answer      = new MultipleChoiceAnswer(new[] { "C" });

            // act
            var result = wrapper.Validate(instruction, answer);

            // assert
            Assert.NotNull(result);
        }
Example #5
0
        public async Task Aggregate_NoAnswers_ReturnEmpty()
        {
            // arrange
            var aggregator  = new MultipleChoiceAggregator();
            var instruction = new MultipleChoiceInstruction(new[] { "A", "B", "C" }, null);

            // act
            var result =
                await aggregator.Aggregate(instruction, ImmutableDictionary <string, MultipleChoiceAnswer> .Empty);

            // assert
            var multipleChoiceResults = Assert.IsType <SelectionPollResults>(result);

            Assert.Equal(multipleChoiceResults.Options.Keys, instruction.Options);
            Assert.All(multipleChoiceResults.Options, x => Assert.Empty(x.Value));
        }
Example #6
0
        public async Task Aggregate_SomeAnswers_ReturnResult()
        {
            // arrange
            var aggregator  = new MultipleChoiceAggregator();
            var instruction = new MultipleChoiceInstruction(new[] { "A", "B", "C" }, null);

            // act
            var result = await aggregator.Aggregate(instruction, new Dictionary <string, MultipleChoiceAnswer>
            {
                { "1", new MultipleChoiceAnswer(new[] { "B", "C" }) },
                { "2", new MultipleChoiceAnswer(new[] { "A" }) },
                { "3", new MultipleChoiceAnswer(new[] { "C", "A" }) },
            });

            // assert
            var multipleChoiceResults = Assert.IsType <SelectionPollResults>(result);

            Assert.Equal(multipleChoiceResults.Options["A"], new[] { "2", "3" });
            Assert.Equal(multipleChoiceResults.Options["B"], new[] { "1" });
            Assert.Equal(multipleChoiceResults.Options["C"], new[] { "1", "3" });
        }