public void SelectMany_ShouldReturnCorrectResult(IQuestion <string> question, Func <string, IQuestion <object> > selector)
        {
            // act
            var actual = question.SelectMany(selector);
            // assert
            var expected = new SelectManyQuestion <string, object>(question, selector);

            actual.Should().BeOfType <SelectManyQuestion <string, object> >();
            actual.Should().BeEquivalentTo(expected);
        }
        public void Name_ShouldReturnCorrectValue(
            SelectManyQuestion <string, object> sut,
            string expectedName)
        {
            // arrange
            Mock.Get(sut.Question).Setup(q => q.Name).Returns(expectedName);
            // act
            var actual = sut.Name;
            // assert
            var expected = "[SelectMany] " + expectedName;

            actual.Should().Be(expected);
        }