public void StartArchivialLocalSourceRescanCommand_ThrowsIfSourceIsNotFound()
        {
            var mockedDb = new Mock <IClientDatabase>();

            LocalSourceLocation databaseCommitedObject = null;

            mockedDb.Setup(x => x.GetSourceLocationsAsync()).ReturnsAsync(
                new SourceLocations()
            {
                new LocalSourceLocation()
                {
                    ID = 1
                }
            }
                );

            mockedDb.Setup(x => x.RescanSourceLocationAsync(It.IsAny <LocalSourceLocation>()))
            .Returns(Task.CompletedTask)
            .Callback <LocalSourceLocation>(x => databaseCommitedObject = x);

            var mockedCoreSettings = new Mock <ICoreSettings>();

            var depedencies = new CmdletDependencies()
            {
                ClientDatabase = mockedDb.Object,
                CoreSettings   = mockedCoreSettings.Object
            };

            var command = new StartArchivialLocalSourceRescanCommand(depedencies)
            {
                SourceID = 2
            };

            var result = command.Invoke().GetEnumerator().MoveNext();
        }
        public void StartArchivialLocalSourceRescanCommand_CanQueueRescan_FromSourceObject()
        {
            var mockedDb = new Mock <IClientDatabase>();

            LocalSourceLocation databaseCommitedObject = null;

            mockedDb.Setup(x => x.GetSourceLocationsAsync()).ReturnsAsync(
                new SourceLocations()
            {
                new LocalSourceLocation()
                {
                    ID = 1
                }
            }
                );

            mockedDb.Setup(x => x.RescanSourceLocationAsync(It.IsAny <LocalSourceLocation>()))
            .Returns(Task.CompletedTask)
            .Callback <LocalSourceLocation>(x => databaseCommitedObject = x);

            var mockedCoreSettings = new Mock <ICoreSettings>();

            var depedencies = new CmdletDependencies()
            {
                ClientDatabase = mockedDb.Object,
                CoreSettings   = mockedCoreSettings.Object
            };

            var command = new StartArchivialLocalSourceRescanCommand(depedencies)
            {
                LocalSource = new LocalSourceLocation()
                {
                    ID = 1
                }
            };

            var result = command.Invoke().GetEnumerator().MoveNext();

            mockedDb.Verify(x => x.RescanSourceLocationAsync(It.IsAny <LocalSourceLocation>()), Times.Once);

            Assert.IsNotNull(databaseCommitedObject);
            Assert.AreEqual(1, databaseCommitedObject.ID);
        }