public void GetInitialData_ReturnsDictionary_IfValidationSucceeded() { // Arrange _filePathProviderMock.Stub(x => x.FilePath).Return(_csvFilePath); var expectedParsingResult = new List <string[]> { new [] { "I1_1", "55", "0.1" }, new [] { "I1_2", "10.5", "0.1" }, new [] { "Init3", "0.55", "0.1" }, new [] { "Init4", "1", "0.1" }, new [] { "Init5", "2", "0.1" } }; _csvParserMock.Stub(x => x.ParseFile(_csvFilePath)).Return(expectedParsingResult); var expectedValidationResult = ValidationOperationResult.Success(); _validatorMock.Stub(x => x.Validate(Arg <List <string[]> > .Is.Anything)).Return(expectedValidationResult); var expectedData = new List <InitialData> { new InitialData("I1_1", 55, 0.1), new InitialData("I1_2", 10.5, 0.1), new InitialData("Init3", 0.55, 0.1), new InitialData("Init4", 1, 0.1), new InitialData("Init5", 2, 0.1) }; var expectedResult = Optional <List <InitialData> > .For(expectedData); // Act var actualResult = _csvDataProvider.GetInitialData(); // Assert Assert.IsTrue(actualResult.IsPresent); Assert.AreEqual(expectedResult.Value.Count, actualResult.Value.Count); for (var i = 0; i < actualResult.Value.Count; i++) { Assert.IsTrue(ObjectComparer.InitialDatasAreEqual(expectedResult.Value[i], actualResult.Value[i])); } _validationOperationResultLoggerMock.AssertWasNotCalled(x => x.LogValidationOperationResultMessages(expectedValidationResult)); }