public void TimeEstimateWeightIsMaximumOfChildWeights() { 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 dataRouter = new DataRouter(); dataRouter.Add(TypedDataType.Text, command1Mock.Object); dataRouter.Add(TypedDataType.Uri, command2Mock.Object); Assert.AreEqual(20, dataRouter.ProcessTimeEstimate.ProgressWeight); }
public void ProcessCallsRoutedProcess() { var inputTracker = GetMutableProgressTracker(); var inputData = GetTextData(); var commandMock = GetCommandMock(); commandMock.Setup((command) => command.Process(inputData, inputTracker, CancellationToken.None)).Returns((TypedData) null); var dataRouter = new DataRouter(); dataRouter.Add(TypedDataType.Text, commandMock.Object); dataRouter.Process(inputData, inputTracker, CancellationToken.None); commandMock.Verify((command) => command.Process(inputData, inputTracker, CancellationToken.None), Times.Once()); }
public void ProcessReturnsData() { var expectedOutput = GetTextData(); var inputTracker = GetMutableProgressTracker(); var inputData = GetTextData(); var commandMock = GetCommandMock(); commandMock.Setup((command) => command.Process(inputData, inputTracker, CancellationToken.None)).Returns(expectedOutput); var dataRouter = new DataRouter(); dataRouter.Add(TypedDataType.Text, commandMock.Object); var actualOutput = dataRouter.Process(inputData, inputTracker, CancellationToken.None); Assert.AreSame(expectedOutput, actualOutput); }
public void NoTimeEstimateWeightIfNoRoutes() { var dataRouter = new DataRouter(); Assert.AreEqual(0, dataRouter.ProcessTimeEstimate.ProgressWeight); }
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"; }
public DataRouterTimeEstimate(DataRouter dataRouter) { this.dataRouter = dataRouter; }