public void CollectionForm_DisplayError_InvokeWithContextWithIUIService_CallsShowError() { var mockEditorService = new Mock <IWindowsFormsEditorService>(MockBehavior.Strict); mockEditorService .Setup(s => s.ShowDialog(It.IsAny <Form>())) .Returns(DialogResult.OK); var mockServiceProvider = new Mock <IServiceProvider>(MockBehavior.Strict); mockServiceProvider .Setup(p => p.GetService(typeof(IWindowsFormsEditorService))) .Returns(mockEditorService.Object); var exception = new Exception(); var mockService = new Mock <IUIService>(MockBehavior.Strict); mockService .Setup(s => s.ShowError(exception)) .Verifiable(); var mockContext = new Mock <ITypeDescriptorContext>(MockBehavior.Strict); mockContext .Setup(c => c.GetService(typeof(IDesignerHost))) .Returns(null); mockContext .Setup(c => c.GetService(typeof(AmbientProperties))) .Returns(null); mockContext .Setup(c => c.GetService(typeof(IComponentChangeService))) .Returns(null); mockContext .Setup(c => c.GetService(typeof(IUIService))) .Returns(mockService.Object); var editor = new SubCollectionEditor(typeof(List <int>)); var editValue = new object(); Assert.Same(editValue, editor.EditValue(mockContext.Object, mockServiceProvider.Object, editValue)); Assert.Same(mockContext.Object, editor.Context); var form = new SubCollectionForm(editor); form.DisplayError(exception); mockService.Verify(s => s.ShowError(exception), Times.Once()); }