public void BuildClockFromStringAndRenderClockProperly() { // Arrange String expected = "testString"; IBerlinClock result = new Moq.Mock <IBerlinClock>().Object; var builderMock = new Moq.Mock <IClockBuilder>(); builderMock.Setup(b => b.BuildClocks(Moq.It.IsAny <String>())).Returns(result).Verifiable(); var rendererMock = new Moq.Mock <IClockRenderer <String> >(); rendererMock.Setup(m => m.RenderClocks(Moq.It.Is <IBerlinClock>(clock => result.Equals(clock)))).Returns(expected).Verifiable(); var converter = new TimeConverter(rendererMock.Object, builderMock.Object); // Act String actual = converter.ConvertTime("InputTime"); // Assert Assert.AreEqual(actual, expected); builderMock.VerifyAll(); rendererMock.VerifyAll(); }