public void WhenAProjectFullPathIsInvalidItWillCallDependencies()
        {
            var xmlSerializerIsCalled = false;
            var xmlSerializerSpy = new StubIXmlSerializer
            {
                SerializeObject = o =>
                {
                    xmlSerializerIsCalled = true;
                    return "Result";
                }
            };

            var fileWriterIsCalled = false;
            var fileWriterSpy = new StubIFileWriter
            {
                WriteStringString = (s, s1) => { fileWriterIsCalled = true; }
            };

            var projectSerializer = new ProjectSerializer(xmlSerializerSpy, fileWriterSpy);

            projectSerializer.Serialize(project);

            Assert.IsTrue(xmlSerializerIsCalled);
            Assert.IsTrue(fileWriterIsCalled);
        }
示例#2
0
        public void ClearDatabase_Returns()
        {
            var stubReader     = new StubIFileReader();
            var stubWriter     = new StubIFileWriter();
            var fileDataAccess = new FileDataAccess <FakeBlogModel>(stubReader, stubWriter);
            var param_filePath = "path/to/the/file.json";

            fileDataAccess.ClearDatabase(param_filePath);
        }
示例#3
0
        public void WriteToDatabase_ListOfEntityIsEmpty_Returns()
        {
            var stubReader         = new StubIFileReader();
            var stubWriter         = new StubIFileWriter();
            var fileDataAccess     = new FileDataAccess <FakeBlogModel>(stubReader, stubWriter);
            var param_filePath     = "path/to/the/file.json";
            var param_listOfEntity = new List <FakeBlogModel>();

            fileDataAccess.WriteToDatabase(param_filePath, param_listOfEntity);
        }
示例#4
0
        public void WriteToDatabase_EntityIsNull_Returns()
        {
            var           stubReader     = new StubIFileReader();
            var           stubWriter     = new StubIFileWriter();
            var           fileDataAccess = new FileDataAccess <FakeBlogModel>(stubReader, stubWriter);
            var           param_filePath = "path/to/the/file.json";
            FakeBlogModel param_entity   = null;

            fileDataAccess.WriteToDatabase(param_filePath, param_entity);
        }
示例#5
0
        public void OverwriteDatabase_ListOfEntityIsValid_Returns()
        {
            var stubReader         = new StubIFileReader();
            var stubWriter         = new StubIFileWriter();
            var fileDataAccess     = new FileDataAccess <FakeBlogModel>(stubReader, stubWriter);
            var param_filePath     = "path/to/the/file.json";
            var param_listOfEntity = new List <FakeBlogModel> {
                new FakeBlogModel()
            };

            fileDataAccess.OverwriteDatabase(param_filePath, param_listOfEntity);
        }
示例#6
0
        public void WriteToDatabase_ListOfEntityIsEmpty_VerifyReader()
        {
            var mockReader         = new MockIFileReader();
            var stubWriter         = new StubIFileWriter();
            var fileDataAccess     = new FileDataAccess <FakeBlogModel>(mockReader, stubWriter);
            var param_filePath     = "path/to/the/file.json";
            var param_listOfEntity = new List <FakeBlogModel>();

            fileDataAccess.WriteToDatabase(param_filePath, param_listOfEntity);

            mockReader.VerifyReadNeverCalled();
        }
示例#7
0
        public void WriteToDatabase_EntityIsValidAndDatabaseIsEmpty_VerifyReader()
        {
            var mockReader     = new MockIFileReader();
            var stubWriter     = new StubIFileWriter();
            var fileDataAccess = new FileDataAccess <FakeBlogModel>(mockReader, stubWriter);
            var param_filePath = "path/to/the/file.json";
            var param_entity   = new FakeBlogModel();

            fileDataAccess.WriteToDatabase(param_filePath, param_entity);

            mockReader.VerifyRead(param_filePath);
        }
示例#8
0
        public void ReadDatabase_FileContentsAreNullOrEmpty_VerifyReader(string stub_fileContents)
        {
            var mockReader     = new MockIFileReader();
            var stubWriter     = new StubIFileWriter();
            var fileDataAccess = new FileDataAccess <FakeBlogModel>(mockReader, stubWriter);

            mockReader.StubRead(stub_fileContents);
            var param_filePath = "path/to/the/file.json";

            fileDataAccess.ReadDatabase(param_filePath);

            mockReader.VerifyRead(param_filePath);
        }
示例#9
0
        public void ReadDatabase_FileContentsAreNullOrEmpty_ReturnsEmptyList(string stub_fileContents)
        {
            var stubReader     = new StubIFileReader();
            var stubWriter     = new StubIFileWriter();
            var fileDataAccess = new FileDataAccess <FakeBlogModel>(stubReader, stubWriter);

            stubReader.StubRead(stub_fileContents);
            var param_filePath  = "path/to/the/file.json";
            var expected_return = new List <FakeBlogModel>();

            var actual_return = fileDataAccess.ReadDatabase(param_filePath);

            Assert.Equal(expected_return, actual_return);
        }
示例#10
0
        public void WriteToDatabase_ListOfEntityIsValidAndDatabaseContainsOneObject_Returns()
        {
            var stubReader         = new StubIFileReader();
            var stubWriter         = new StubIFileWriter();
            var fileDataAccess     = new FileDataAccess <FakeBlogModel>(stubReader, stubWriter);
            var param_filePath     = "path/to/the/file.json";
            var param_listOfEntity = new List <FakeBlogModel> {
                new FakeBlogModel()
            };

            stubReader.StubRead(JsonConvert.SerializeObject(param_listOfEntity));

            fileDataAccess.WriteToDatabase(param_filePath, param_listOfEntity);
        }
示例#11
0
        public void ReadDatabase_FileContainsOneObject_VerifyReader()
        {
            var mockReader        = new MockIFileReader();
            var stubWriter        = new StubIFileWriter();
            var fileDataAccess    = new FileDataAccess <FakeBlogModel>(mockReader, stubWriter);
            var param_filePath    = "path/to/the/file.json";
            var stub_listOfEntity = new List <FakeBlogModel> {
                new FakeBlogModel()
            };
            var stub_fileContents = JsonConvert.SerializeObject(stub_listOfEntity);

            mockReader.StubRead(stub_fileContents);

            fileDataAccess.ReadDatabase(param_filePath);

            mockReader.VerifyRead(param_filePath);
        }
示例#12
0
        public void ReadDatabase_FileContainsOneObject_ReturnsListWithTheOneObject()
        {
            var stubReader        = new StubIFileReader();
            var stubWriter        = new StubIFileWriter();
            var fileDataAccess    = new FileDataAccess <FakeBlogModel>(stubReader, stubWriter);
            var param_filePath    = "path/to/the/file.json";
            var stub_listOfEntity = new List <FakeBlogModel> {
                new FakeBlogModel()
            };
            var stub_fileContents = JsonConvert.SerializeObject(stub_listOfEntity);

            stubReader.StubRead(stub_fileContents);
            var expected_return = JsonConvert.DeserializeObject <List <FakeBlogModel> >(stub_fileContents);

            var actual_return = fileDataAccess.ReadDatabase(param_filePath);

            Assert.Equal(expected_return.Count, actual_return.Count);
            Assert.Equal(expected_return[0].FakeProperty, actual_return[0].FakeProperty);
        }