コード例 #1
0
        public async Task TestSearchThrows()
        {
            _autoMocker.MockLogError();
            var publisherMock = new Mock <INodeFoundEventPublisher>();

            publisherMock
            .Setup(m => m.RaiseNodeFoundEvent(Directory))
            .Verifiable();
            _autoMocker
            .Setup <IDirectoryService, IEnumerable <string> >(m => m.GetNodesRecursively(Directory))
            .Returns(new[] { Directory });
            _autoMocker
            .Setup <IDirectoryService>(m => m.GetDirectory(Directory))
            .Throws <InvalidOperationException>();
            var specification = new Mock <ISpecification <NodeModelBase> >();
            Func <INodeFoundEventPublisher, Task> factory = null;

            _autoMocker
            .Setup <IRecursiveSearchResultFactory, IRecursiveSearchResult>(m =>
                                                                           m.Create(It.IsAny <Func <INodeFoundEventPublisher, Task> >()))
            .Callback <Func <INodeFoundEventPublisher, Task> >(f => factory = f);

            var service = _autoMocker.CreateInstance <RecursiveSearchService>();

            service.Search(Directory, specification.Object, default);

            Assert.NotNull(factory);

            await factory(publisherMock.Object);

            _autoMocker.VerifyLogError(Times.Once());
            publisherMock
            .Verify(m => m.RaiseNodeFoundEvent(Directory), Times.Never);
        }
コード例 #2
0
    public void TestUnmountException()
    {
        _autoMocker
        .Setup <IProcessService>(m => m.Run(It.IsAny <string>(), It.IsAny <string>()))
        .Throws <InvalidOperationException>();
        _autoMocker
        .Setup <IEnvironmentDriveService, IReadOnlyList <DriveInfo> >(m => m.GetMountedDrives())
        .Returns(Array.Empty <DriveInfo>());
        _autoMocker.MockLogError();

        var service = _autoMocker.CreateInstance <LinuxMountedDriveService>();

        service.Unmount("/media/camelot/test");

        _autoMocker.VerifyLogError(Times.Once());
    }
コード例 #3
0
    public async Task TestException()
    {
        _autoMocker
        .Setup <ICompositeOperation, Task>(m => m.RunAsync())
        .Throws <InvalidOperationException>();
        _autoMocker.MockLogError();

        var machine = _autoMocker.CreateInstance <AsyncOperationStateMachine>();

        await machine.RunAsync();

        _autoMocker.VerifyLogError(Times.Once());
    }
コード例 #4
0
    public void TestDirectoryRemove(bool throws, bool expected)
    {
        _autoMocker
        .Setup <IEnvironmentDirectoryService>(m => m.Delete(DirectoryName, true))
        .Verifiable();
        if (throws)
        {
            _autoMocker
            .Setup <IEnvironmentDirectoryService>(m => m.Delete(DirectoryName, true))
            .Throws <InvalidOperationException>();
        }

        _autoMocker.MockLogError();

        var directoryService = _autoMocker.CreateInstance <DirectoryService>();

        var actual = directoryService.RemoveRecursively(DirectoryName);

        Assert.Equal(expected, actual);
        _autoMocker
        .Verify <IEnvironmentDirectoryService>(m => m.Delete(DirectoryName, true));
        _autoMocker.VerifyLogError(throws ? Times.Once() : Times.Never());
    }
コード例 #5
0
    public async Task TestReloadWithException()
    {
        _autoMocker.MockLogError();
        _autoMocker
        .Setup <IMountedDriveService>(m => m.ReloadMountedDrives())
        .Throws(new InvalidOperationException());

        var service = _autoMocker.CreateInstance <DrivesUpdateService>();

        service.Start();

        await Task.Delay(1500);

        _autoMocker
        .Verify <IMountedDriveService>(m => m.ReloadMountedDrives(), Times.AtLeastOnce);
        _autoMocker
        .Verify <IUnmountedDriveService>(m => m.ReloadUnmountedDrivesAsync(), Times.Never);
        _autoMocker.VerifyLogError(Times.AtLeastOnce());
    }