public void TestDrives() { var drives = new[] { new DriveModel { RootDirectory = "A" }, new DriveModel { RootDirectory = "B" }, new DriveModel { RootDirectory = "C" } }; var driveServiceMock = new Mock <IDriveService>(); driveServiceMock .SetupGet(m => m.MountedDrives) .Returns(drives); driveServiceMock .SetupGet(m => m.UnmountedDrives) .Returns(new UnmountedDriveModel[0]); var driveViewModelFactoryMock = new Mock <IDriveViewModelFactory>(); var driveViewModels = new List <IDriveViewModel>(); foreach (var driveModel in drives) { var driveViewModelMock = new Mock <IDriveViewModel>(); driveViewModelFactoryMock .Setup(m => m.Create(driveModel)) .Returns(driveViewModelMock.Object); driveViewModels.Add(driveViewModelMock.Object); } var applicationDispatcherMock = new Mock <IApplicationDispatcher>(); applicationDispatcherMock .Setup(m => m.Dispatch(It.IsAny <Action>())) .Callback <Action>(action => action()); var viewModel = new DrivesListViewModel(driveServiceMock.Object, driveViewModelFactoryMock.Object, applicationDispatcherMock.Object); Assert.NotNull(viewModel.Drives); var actualDrivesViewModels = viewModel.Drives.ToArray(); Assert.Equal(drives.Length, actualDrivesViewModels.Length); Assert.Equal(actualDrivesViewModels, driveViewModels); }
public void TestDrivesUpdate() { var driveServiceMock = new Mock <IDriveService>(); driveServiceMock .SetupGet(m => m.MountedDrives) .Returns(new List <DriveModel>()); var driveViewModelFactoryMock = new Mock <IDriveViewModelFactory>(); var applicationDispatcherMock = new Mock <IApplicationDispatcher>(); applicationDispatcherMock .Setup(m => m.Dispatch(It.IsAny <Action>())) .Callback <Action>(action => action()); driveServiceMock .SetupGet(m => m.UnmountedDrives) .Returns(new UnmountedDriveModel[0]); var viewModel = new DrivesListViewModel(driveServiceMock.Object, driveViewModelFactoryMock.Object, applicationDispatcherMock.Object); Assert.NotNull(viewModel.Drives); Assert.Empty(viewModel.Drives); var driveModel = new DriveModel { RootDirectory = "B" }; driveServiceMock .SetupGet(m => m.MountedDrives) .Returns(new[] { driveModel }); var driveViewModelMock = new Mock <IDriveViewModel>(); driveViewModelFactoryMock .Setup(m => m.Create(driveModel)) .Returns(driveViewModelMock.Object); driveServiceMock .Raise(m => m.DrivesListChanged += null, EventArgs.Empty); Assert.NotNull(viewModel.Drives); Assert.Single(viewModel.Drives); }