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);
        }
        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();
        }
        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);
        }
        public void WriteToDatabase_ListOfEntityIsValidAndDatabaseContainsOneObject_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> {
                new FakeBlogModel()
            };

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

            fileDataAccess.WriteToDatabase(param_filePath, param_listOfEntity);

            mockReader.VerifyRead(param_filePath);
        }