예제 #1
0
        public void SutIsSpecimenBuilder()
        {
            // Arrange
            // Act
            var sut = new StringSeedRelay();

            // Assert
            Assert.IsAssignableFrom <ISpecimenBuilder>(sut);
        }
예제 #2
0
        public void CreateWithNullContainerWillThrow()
        {
            // Arrange
            var sut          = new StringSeedRelay();
            var dummyRequest = new object();

            // Act & assert
            Assert.Throws <ArgumentNullException>(() =>
                                                  sut.Create(dummyRequest, null));
        }
예제 #3
0
        public void SutIsSpecimenBuilder()
        {
            // Fixture setup
            // Exercise system
            var sut = new StringSeedRelay();

            // Verify outcome
            Assert.IsAssignableFrom <ISpecimenBuilder>(sut);
            // Teardown
        }
예제 #4
0
        public void CreateWithNullContainerWillThrow()
        {
            // Fixture setup
            var sut          = new StringSeedRelay();
            var dummyRequest = new object();

            // Exercise system and verify outcome
            Assert.Throws <ArgumentNullException>(() =>
                                                  sut.Create(dummyRequest, null));
            // Teardown
        }
예제 #5
0
        public void CreateWithNullRequestWillReturnNull()
        {
            // Arrange
            var sut = new StringSeedRelay();
            // Act
            var dummyContainer = new DelegatingSpecimenContext();
            var result         = sut.Create(null, dummyContainer);
            // Assert
            var expectedResult = new NoSpecimen();

            Assert.Equal(expectedResult, result);
        }
예제 #6
0
        public void CreateWithNonStringSeedWillReturnCorrectResult()
        {
            // Arrange
            var sut           = new StringSeedRelay();
            var nonStringSeed = new SeededRequest(typeof(string), new object());
            // Act
            var dummyContainer = new DelegatingSpecimenContext();
            var result         = sut.Create(nonStringSeed, dummyContainer);
            // Assert
            var expectedResult = new NoSpecimen();

            Assert.Equal(expectedResult, result);
        }
예제 #7
0
        public void CreateWithNonStringRequestSeedWillReturnNull()
        {
            // Arrange
            var sut = new StringSeedRelay();
            var nonStringRequestSeed = new SeededRequest(typeof(object), "Anonymous value");
            // Act
            var dummyContainer = new DelegatingSpecimenContext();
            var result         = sut.Create(nonStringRequestSeed, dummyContainer);
            // Assert
            var expectedResult = new NoSpecimen();

            Assert.Equal(expectedResult, result);
        }
예제 #8
0
        public void CreateWithNullRequestWillReturnNull()
        {
            // Fixture setup
            var sut = new StringSeedRelay();
            // Exercise system
            var dummyContainer = new DelegatingSpecimenContext();
            var result         = sut.Create(null, dummyContainer);
            // Verify outcome
            var expectedResult = new NoSpecimen();

            Assert.Equal(expectedResult, result);
            // Teardown
        }
예제 #9
0
        public void CreateWithNonStringSeedWillReturnCorrectResult()
        {
            // Fixture setup
            var sut           = new StringSeedRelay();
            var nonStringSeed = new SeededRequest(typeof(string), new object());
            // Exercise system
            var dummyContainer = new DelegatingSpecimenContext();
            var result         = sut.Create(nonStringSeed, dummyContainer);
            // Verify outcome
            var expectedResult = new NoSpecimen();

            Assert.Equal(expectedResult, result);
            // Teardown
        }
예제 #10
0
        public void CreateWithStringSeedWhenContainerCannotCreateStringsWillReturnCorrectResult()
        {
            // Arrange
            var sut             = new StringSeedRelay();
            var stringSeed      = new SeededRequest(typeof(string), "Anonymous value");
            var unableContainer = new DelegatingSpecimenContext {
                OnResolve = r => new NoSpecimen()
            };
            // Act
            var result = sut.Create(stringSeed, unableContainer);
            // Assert
            var expectedResult = new NoSpecimen();

            Assert.Equal(expectedResult, result);
        }
예제 #11
0
        public void CreateWithStringSeedWhenContainerCannotCreateStringsWillReturnCorrectResult()
        {
            // Fixture setup
            var sut             = new StringSeedRelay();
            var stringSeed      = new SeededRequest(typeof(string), "Anonymous value");
            var unableContainer = new DelegatingSpecimenContext {
                OnResolve = r => new NoSpecimen()
            };
            // Exercise system
            var result = sut.Create(stringSeed, unableContainer);
            // Verify outcome
            var expectedResult = new NoSpecimen();

            Assert.Equal(expectedResult, result);
            // Teardown
        }
예제 #12
0
        public void CreateWithNonStringRequestSeedWillReturnNull()
        {
            // Fixture setup
            var sut = new StringSeedRelay();
            var nonStringRequestSeed = new SeededRequest(typeof(object), "Anonymous value");
            // Exercise system
            var dummyContainer = new DelegatingSpecimenContext();
            var result         = sut.Create(nonStringRequestSeed, dummyContainer);

            // Verify outcome
#pragma warning disable 618
            var expectedResult = new NoSpecimen(nonStringRequestSeed);
#pragma warning restore 618
            Assert.Equal(expectedResult, result);
            // Teardown
        }
예제 #13
0
        public void CreateWithStringSeedWhenContainerCanCreateStringsWillReturnCorrectResult()
        {
            // Arrange
            var seedString      = Guid.NewGuid().ToString();
            var containerString = Guid.NewGuid().ToString();

            var sut        = new StringSeedRelay();
            var stringSeed = new SeededRequest(typeof(string), seedString);
            var container  = new DelegatingSpecimenContext {
                OnResolve = r => containerString
            };
            // Act
            var result = sut.Create(stringSeed, container);
            // Assert
            var expectedString = seedString + containerString;

            Assert.Equal(expectedString, result);
        }
예제 #14
0
        public void CreateWithStringSeedWhenContainerCanCreateStringsWillReturnCorrectResult()
        {
            // Fixture setup
            var seedString      = Guid.NewGuid().ToString();
            var containerString = Guid.NewGuid().ToString();

            var sut        = new StringSeedRelay();
            var stringSeed = new SeededRequest(typeof(string), seedString);
            var container  = new DelegatingSpecimenContext {
                OnResolve = r => containerString
            };
            // Exercise system
            var result = sut.Create(stringSeed, container);
            // Verify outcome
            var expectedString = seedString + containerString;

            Assert.Equal(expectedString, result);
            // Teardown
        }
예제 #15
0
        public void CreateWithStringSeedWillCorrectlyInvokeContainer()
        {
            // Arrange
            var sut        = new StringSeedRelay();
            var stringSeed = new SeededRequest(typeof(string), "Anonymous value");

            var mockVerified  = false;
            var containerMock = new DelegatingSpecimenContext();

            containerMock.OnResolve = r =>
            {
                Assert.Equal(typeof(string), r);
                mockVerified = true;
                return(null);
            };
            // Act
            sut.Create(stringSeed, containerMock);
            // Assert
            Assert.True(mockVerified, "Mock verification");
        }