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)); }
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)); }
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); }
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); }
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)); }
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" }); }