private JsonFileWriter CreateTestee(string sourcePath = TheSourcePath, string targetPath = TheTargetPath) { var jsonFactoryMock = A.Fake <IJsonFactory>(); A.CallTo(() => jsonFactoryMock.GetRootToken(A <string> .Ignored)).Returns(_rootTokenMock); var filePropertiesMock = A.Fake <IFileProperties>(); var fileConversionPropertiesMock = A.Fake <IPersistentFileConversionProperties>(); var proposedFileInfoMock = A.Fake <IOutputFileInfo>(); var paragraphUnitPropertiesMock = A.Fake <IParagraphUnitProperties>(); var contextPropertiesMock = A.Fake <IContextProperties>(); var fieldContextInfoMock = A.Fake <IContextInfo>(); var locationContextInfoMock = A.Fake <IContextInfo>(); A.CallTo(() => paragraphUnitPropertiesMock.Contexts).Returns(contextPropertiesMock); A.CallTo(() => contextPropertiesMock.Contexts[0]).Returns(fieldContextInfoMock); A.CallTo(() => contextPropertiesMock.Contexts[1]).Returns(locationContextInfoMock); A.CallTo(() => locationContextInfoMock.GetMetaData(ContextKeys.TargetPath)).Returns(targetPath); A.CallTo(() => locationContextInfoMock.GetMetaData(ContextKeys.SourcePath)).Returns(sourcePath); A.CallTo(() => _paragraphUnitMock.Properties).Returns(paragraphUnitPropertiesMock); var sourceTokenMock = A.Fake <IJToken>(); A.CallTo(() => _rootTokenMock.SelectToken(sourcePath)).Returns(sourceTokenMock); A.CallTo(() => sourceTokenMock.Type).Returns(JTokenType.String); A.CallTo(() => sourceTokenMock.Value).Returns(_sourceValueMock); var targetTokenMock = A.Fake <IJToken>(); A.CallTo(() => _rootTokenMock.SelectToken(targetPath)).Returns(targetTokenMock); A.CallTo(() => targetTokenMock.Type).Returns(JTokenType.String); A.CallTo(() => targetTokenMock.Value).Returns(_targetValueMock); var segmentReaderMock = A.Fake <ISegmentReader>(); A.CallTo(() => segmentReaderMock.GetText(_paragraphUnitMock.Target)).Returns(TheTargetText); var testee = new JsonFileWriter(jsonFactoryMock, _fileHelperMock, segmentReaderMock); testee.GetProposedOutputFileInfo(fileConversionPropertiesMock, proposedFileInfoMock); testee.SetFileProperties(filePropertiesMock); return(testee); }