public async Task Should_Create_With_Known_Format() { //arrange var testFormat = "Test_Format"; await RunOnSTA(() => { SysClipboard.Clear(); SysClipboard.SetData(testFormat, "Test"); }); _formatsExtractor.Setup(x => x.Extract(It.IsAny <ClipboardTrigger>(), It.IsAny <IDataObject>())).Returns(new[] { new TestEquatableFormat(new ClipboardFormat(testFormat, testFormat, "Test", new ClipboardFormatCategory("Test Category", "Test"))) }); _listenerMock.Setup(x => x.IsInterestedIn(It.IsAny <ClipboardObject>())).Returns(true); //act using (var sut = new ClipboardObjectsManager(_clipboardObjectManager.Object, new[] { _formatsExtractor.Object }, new[] { _clipboardFilter.Object }, _serviceProviderMock.Object)) { sut.AddListener(_listenerMock.Object); sut.AddTriggerToQueue(); await Task.Delay(100); } //assert _listenerMock.Verify(x => x.OnResolvedTrigger(It.IsAny <ResolvedClipboardTrigger>()), Times.Once()); _listenerMock.Verify(x => x.IsInterestedIn(It.IsAny <ClipboardObject>()), Times.Once()); _clipboardObjectManager.Verify(x => x.AddImplementationsAsync(It.IsAny <ClipboardObject>(), It.IsAny <IEnumerable <EqualtableFormat> >()), Times.Once()); }
public async Task Should_Not_Create_ClipboardObject_If_Clipboard_Empty() { //arrange await RunOnSTA(() => { SysClipboard.Clear(); }); //act using (var sut = new ClipboardObjectsManager(_clipboardObjectManager.Object, new[] { _formatsExtractor.Object }, new[] { _clipboardFilter.Object }, _serviceProviderMock.Object)) { sut.AddListener(_listenerMock.Object); sut.AddTriggerToQueue(); await Task.Delay(100); } //assert _listenerMock.Verify(x => x.OnResolvedTrigger(It.IsAny <ResolvedClipboardTrigger>()), Times.Never()); _listenerMock.Verify(x => x.IsInterestedIn(It.IsAny <ClipboardObject>()), Times.Never()); _clipboardObjectManager.Verify(x => x.AddImplementationsAsync(It.IsAny <ClipboardObject>(), It.IsAny <IEnumerable <EqualtableFormat> >()), Times.Never()); }
public static void AddTriggerToQueue(this ClipboardObjectsManager sut, ClipboardTriggerType triggerType = null) { triggerType ??= new CustomClipboardTriggerType("Test", "Test"); sut.ProcessClipboardTrigger(new ClipboardTrigger(triggerType, new ProgramInfo(Process.GetCurrentProcess()), new ProgramInfo(Process.GetCurrentProcess()), new WindowInfo("Test", "Test"))); }