public void CreateFromMultipleRequestReturnsCorrectResult(
     Type itemType,
     int arrayLength)
 {
     // Fixture setup
     var sut = new MultipleToEnumerableRelay();
     var context = new DelegatingSpecimenContext
     {
         OnResolve = r =>
         {
             Assert.Equal(
                 typeof(IEnumerable<>).MakeGenericType(itemType),
                 r);
             return Array.CreateInstance((Type)itemType, arrayLength);
         }
     };
     // Exercise system
     var request = new MultipleRequest(itemType);
     var actual = sut.Create(request, context);
     // Verify outcome
     Assert.IsAssignableFrom(
         typeof(IEnumerable<>).MakeGenericType(itemType),
         actual);
     var enumerable =
         Assert.IsAssignableFrom<System.Collections.IEnumerable>(actual);
     Assert.Equal(arrayLength, enumerable.Cast<object>().Count());
     // Teardown
 }
        public void CreateFromNonMultipleRequestReturnsCorrectResult(
            object request)
        {
            // Fixture setup
            var sut = new MultipleToEnumerableRelay();
            // Exercise system
            var dummyContext = new DelegatingSpecimenContext();
            var actual = sut.Create(request, dummyContext);
            // Verify outcome
#pragma warning disable 618
            var expected = new NoSpecimen(request);
#pragma warning restore 618
            Assert.Equal(expected, actual);
            // Teardown
        }
 public void CreateWithNullContextThrows()
 {
     // Fixture setup
     var sut = new MultipleToEnumerableRelay();
     // Exercise system and verify outcome
     var dummyRequest = new object();
     Assert.Throws<ArgumentNullException>(
         () => sut.Create(dummyRequest, null));
     // Teardown
 }
 public void SutIsSpecimenBuilder()
 {
     var sut = new MultipleToEnumerableRelay();
     Assert.IsAssignableFrom<ISpecimenBuilder>(sut);
 }