public async Task Show_HasPreviousInfoBar_InfoBarReplaced() { var firstInfoBar = new Mock <IInfoBar>(); var secondInfoBar = new Mock <IInfoBar>(); var infoBarManager = new Mock <IInfoBarManager>(); infoBarManager .SetupSequence(x => x.AttachInfoBarWithButton(ValidToolWindowId, It.IsAny <string>(), It.IsAny <string>(), default)) .Returns(firstInfoBar.Object) .Returns(secondInfoBar.Object); var testSubject = new OpenInIDEFailureInfoBar(infoBarManager.Object, Mock.Of <IOutputWindowService>()); // Act await testSubject.ShowAsync(ValidToolWindowId); // show first bar await testSubject.ShowAsync(ValidToolWindowId); // show second bar firstInfoBar.VerifyNoOtherCalls(); secondInfoBar.VerifyNoOtherCalls(); infoBarManager.VerifyAll(); infoBarManager.Verify(x => x.DetachInfoBar(firstInfoBar.Object), Times.Once); infoBarManager.VerifyNoOtherCalls(); }
public async Task Show_NoPreviousInfoBar_InfoBarIsShown() { var infoBar = new Mock <IInfoBar>(); SetupInfoBarEvents(infoBar); var infoBarManager = new Mock <IInfoBarManager>(); infoBarManager .Setup(x => x.AttachInfoBarWithButton(ValidToolWindowId, It.IsAny <string>(), It.IsAny <string>(), default)) .Returns(infoBar.Object); var testSubject = new OpenInIDEFailureInfoBar(infoBarManager.Object, Mock.Of <IOutputWindowService>()); // Act await testSubject.ShowAsync(ValidToolWindowId); CheckInfoBarWithEventsAdded(infoBarManager, infoBar, ValidToolWindowId); infoBar.VerifyNoOtherCalls(); }
private async static Task <OpenInIDEFailureInfoBar> CreateTestSubjectWithPreviousInfoBar( Mock <IInfoBarManager> infoBarManager = null, Mock <IInfoBar> infoBar = null, Mock <IOutputWindowService> outputWindow = null) { infoBar ??= new Mock <IInfoBar>(); infoBarManager ??= new Mock <IInfoBarManager>(); outputWindow ??= new Mock <IOutputWindowService>(); infoBarManager .Setup(x => x.AttachInfoBarWithButton(ValidToolWindowId, It.IsAny <string>(), It.IsAny <string>(), default)) .Returns(infoBar.Object); var testSubject = new OpenInIDEFailureInfoBar(infoBarManager.Object, outputWindow.Object); // Call "Show" to create an infobar and check it was added await testSubject.ShowAsync(ValidToolWindowId); infoBarManager.VerifyAll(); infoBarManager.VerifyNoOtherCalls(); outputWindow.Invocations.Should().BeEmpty(); return(testSubject); }