public void LoadScriptFromFile_PersistenceServiceThrows_ThrowsIOException() { // Arrange var testInputPath = "C:\\TestPath.filter"; var mockPersistenceService = new Mock<IItemFilterPersistenceService>(); mockPersistenceService.Setup(p => p.LoadItemFilterScriptAsync(testInputPath)).Throws<IOException>(); var mockItemFilterScriptViewModelFactory = new Mock<IItemFilterScriptViewModelFactory>(); var repository = new ItemFilterScriptRepository(mockPersistenceService.Object, mockItemFilterScriptViewModelFactory.Object); // Act // Assert Assert.Throws<IOException>(async () => await repository.LoadScriptFromFileAsync(testInputPath)); }
public async Task LoadScriptFromFile_CallsPersistenceServiceUsingPathAndReturnsViewModel() { // Arrange var testInputPath = "C:\\TestPath.filter"; var mockPersistenceService = new Mock<IItemFilterPersistenceService>(); mockPersistenceService.Setup(p => p.LoadItemFilterScriptAsync(testInputPath)).ReturnsAsync(new ItemFilterScript()).Verifiable(); var mockItemFilterScriptViewModel = new Mock<IItemFilterScriptViewModel>(); var mockItemFilterScriptViewModelFactory = new Mock<IItemFilterScriptViewModelFactory>(); mockItemFilterScriptViewModelFactory.Setup(f => f.Create()).Returns(mockItemFilterScriptViewModel.Object); var repository = new ItemFilterScriptRepository(mockPersistenceService.Object, mockItemFilterScriptViewModelFactory.Object); // Act var result = await repository.LoadScriptFromFileAsync(testInputPath); // Assert mockPersistenceService.Verify(); Assert.AreEqual(mockItemFilterScriptViewModel.Object, result); }