Exemplo n.º 1
0
        public void ProgressUpdatePropogates()
        {
            var inputTracker = GetMutableProgressTracker();

            var command1Mock = GetCommandMock();
            command1Mock.Setup((command) => command.Process(null, It.IsAny<IMutableProgressTracker>(), CancellationToken.None))
                .Returns((TypedData) null)
                .Callback((TypedData data, IMutableProgressTracker progress, CancellationToken cancelToken) => {
                    bool updateCalled = false;

                    EventHandler<ProgressUpdatedEventArgs> handler = (sender, e) => {
                        Assert.AreEqual(0.25, e.Progress, 0.001);

                        updateCalled = true;
                    };

                    inputTracker.ProgressUpdated += handler;

                    progress.Progress = 0.5;

                    inputTracker.ProgressUpdated -= handler;

                    Assert.IsTrue(updateCalled);
                });
            command1Mock.Setup((command) => command.ProcessTimeEstimate).Returns(new TestTimeEstimate(10));

            var command2Mock = GetCommandMock();
            command2Mock.Setup((command) => command.Process(null, It.IsAny<IMutableProgressTracker>(), CancellationToken.None)).Returns((TypedData) null);
            command2Mock.Setup((command) => command.ProcessTimeEstimate).Returns(new TestTimeEstimate(10));

            var chain = new CommandChain(command1Mock.Object, command2Mock.Object);

            chain.Process(null, inputTracker, CancellationToken.None);
        }
Exemplo n.º 2
0
        public void RouteReturnsData1()
        {
            var expectedOutput = GetTextData();

            var inputTracker = GetMutableProgressTracker();
            var inputData = GetTextData();

            var commandMock = GetCommandMock();
            commandMock.Setup((command) => command.Process(inputData, It.IsAny<IMutableProgressTracker>(), CancellationToken.None)).Returns(expectedOutput);
            commandMock.Setup((command) => command.ProcessTimeEstimate).Returns(TimeEstimates.Instantaneous);

            var chain = new CommandChain(commandMock.Object);

            var actualData = chain.Process(inputData, inputTracker, CancellationToken.None);
            Assert.AreSame(expectedOutput, actualData);
        }
Exemplo n.º 3
0
        public override void Execute(IMutableProgressTracker progress, CancellationToken cancelToken)
        {
            var commandChain = new CommandChain(
                new Screenshot(),
                Renamer,
                new CropShot(),
                ImageUploader,
                new Clipboard()
            );

            using (commandChain.Process(null, progress, cancelToken)) {
                // Auto-dispose
            }

            progress.Status = "Image URL saved to clipboard";
        }
Exemplo n.º 4
0
 public CommandChainTimeEstimate(CommandChain commandChain)
 {
     this.commandChain = commandChain;
 }
Exemplo n.º 5
0
        public override void Execute(IMutableProgressTracker progress, CancellationToken cancelToken)
        {
            var clipboard = new Clipboard();
            var router = new DataRouter {
                { TypedDataType.Image, ImageUploader },
                { TypedDataType.Text, TextUploader },
                { TypedDataType.Uri, UrlShortener },
                { TypedDataType.Stream, FileUploader },
            };

            var commandChain = new CommandChain(
                clipboard,
                router,
                clipboard
            );

            using (commandChain.Process(null, progress, cancelToken)) {
                // Auto-dispose
            }

            progress.Status = "URL saved to clipboard";
        }
Exemplo n.º 6
0
        public void TimeEstimateWeightIsSumOfChildWeights()
        {
            var command1Mock = GetCommandMock();
            command1Mock.Setup((command) => command.ProcessTimeEstimate).Returns(new TestTimeEstimate(9));

            var command2Mock = GetCommandMock();
            command2Mock.Setup((command) => command.ProcessTimeEstimate).Returns(new TestTimeEstimate(20));

            var chain = new CommandChain(command1Mock.Object, command2Mock.Object);

            Assert.AreEqual(29, chain.ProcessTimeEstimate.ProgressWeight);
        }