Create() private method

private Create ( object request, ISpecimenContext context ) : object
request object
context ISpecimenContext
return object
 public void CreateOnMultipleThreadsConcurrentlyWorks()
 {
     // Fixture setup
     var tracer = new DelegatingTracingBuilder(new DelegatingSpecimenBuilder
     {
         OnCreate = (r, c) => 99
     });
     var sut = new TerminatingWithPathSpecimenBuilder(tracer);
     var dummyContext = new DelegatingSpecimenContext()
     {
         OnResolve = (r) => 99
     };
     // Exercise system
     int[] specimens = Enumerable.Range(0, 1000)
         .AsParallel()
             .WithDegreeOfParallelism(8)
             .WithExecutionMode(ParallelExecutionMode.ForceParallelism)
         .Select(x => (int)sut.Create(typeof(int), dummyContext))
         .ToArray();
     // Verify outcome
     Assert.Equal(1000, specimens.Length);
     Assert.True(specimens.All(s => s == 99));
     // Teardown
 }
        public void CreateThrowsWithAutoMockingHintOnInterfaceOrAbcRequest(
            object request,
            string requestType)
        {
            var tracer =
                new DelegatingTracingBuilder(
                    new DelegatingSpecimenBuilder
                    {
                        OnCreate = (r, c) => new NoSpecimen(request)
                    });
            var sut = new TerminatingWithPathSpecimenBuilder(tracer);

            var context = new SpecimenContext(sut);
            var e = Assert.Throws<ObjectCreationException>(
                () => sut.Create(request, context));

            Assert.Contains(
                requestType,
                e.Message,
                StringComparison.CurrentCultureIgnoreCase);
            Assert.Contains(
                "auto-mocking",
                e.Message,
                StringComparison.CurrentCultureIgnoreCase);
            Assert.Contains(
                "request path",
                e.Message,
                StringComparison.CurrentCultureIgnoreCase);
        }
        public void CreateThrowsWhenNoSpecimenIsReturnedFromTheDecoratedGraph()
        {
            // Fixture setup
            var requests = new[] {new object(), new object(), new object()};
            var tracer = new DelegatingTracingBuilder(new DelegatingSpecimenBuilder
            {
                // Returns NoSpecimen only on the last specimen request
                OnCreate = (r, c) => (r == requests[2]) ? new NoSpecimen() : new object(),
            });

            var sut = new TerminatingWithPathSpecimenBuilder(tracer);
            var container = new SpecimenContext(sut);
            // Exercise system and verify outcome
            Assert.DoesNotThrow(() => sut.Create(requests[0], container));
            Assert.DoesNotThrow(() => sut.Create(requests[1], container));
            Assert.Throws<ObjectCreationException>(() => sut.Create(requests[2], container));
            // Teardown
        }
        public void SpecimenRequestsAreEmptyAfterThrowing()
        {
            // Fixture setup
            var requests = new[] {new object(), new object(), new object() };
            var requestQueue = new Queue<object>(requests);
            var firstRequest = requestQueue.Dequeue();
            var tracer = new DelegatingTracingBuilder(new DelegatingSpecimenBuilder
            {
                OnCreate = (r, c) => requestQueue.Count > 0
                    ? c.Resolve(requestQueue.Dequeue())
                    : new NoSpecimen()
            });
            var sut = new TerminatingWithPathSpecimenBuilder(tracer);
            var container = new SpecimenContext(sut);

            // Exercise system and verify outcome
            Assert.Throws<ObjectCreationException>(() =>
                sut.Create(firstRequest, container));

            Assert.Empty(sut.SpecimenRequests);
        }
        public void CreateWillInvokeDecoratedBuilderWithCorrectParameters()
        {
            // Fixture setup
            var expectedRequest = new object();
            var expectedContainer = new DelegatingSpecimenContext();

            var verified = false;
            var mockBuilder = new TracingBuilder(new DelegatingSpecimenBuilder
            {
                OnCreate = (r, c) => verified = expectedRequest == r && expectedContainer == c
            });

            var sut = new TerminatingWithPathSpecimenBuilder(mockBuilder);
            // Exercise system
            sut.Create(expectedRequest, expectedContainer);
            // Verify outcome
            Assert.True(verified, "Mock verified");
            // Teardown
        }
        public void CreateWillReturnCorrectResult()
        {
            // Fixture setup
            var expectedSpecimen = new object();
            var stubBuilder = new TracingBuilder(new DelegatingSpecimenBuilder
            {
                OnCreate = (r, c) => expectedSpecimen
            });

            var sut = new TerminatingWithPathSpecimenBuilder(stubBuilder);
            // Exercise system
            var dummyRequest = new object();
            var dummyContainer = new DelegatingSpecimenContext();
            var result = sut.Create(dummyRequest, dummyContainer);
            // Verify outcome
            Assert.Equal(expectedSpecimen, result);
            // Teardown
        }