/// <summary> /// Initializes a new instance of the <see cref="GenerateTestForSymbolCommand"/> class. /// Adds our command handlers for menu (commands must exist in the command table file). /// </summary> /// <param name="package">Owner package, not null.</param> /// <param name="commandService">Command service to add command to, not null.</param> private GenerateTestForSymbolCommand(IUnitTestGeneratorPackage package, OleMenuCommandService commandService) { _package = package ?? throw new ArgumentNullException(nameof(package)); commandService = commandService ?? throw new ArgumentNullException(nameof(commandService)); var menuCommandId = new CommandID(CommandSet, CommandId); var regenerationMenuCommandId = new CommandID(CommandSet, RegenerateCommandId); var menuItem = new OleMenuCommand(Execute, menuCommandId); var regenerationMenuItem = new OleMenuCommand(ExecuteRegeneration, regenerationMenuCommandId); menuItem.BeforeQueryStatus += (s, e) => { ThreadHelper.ThrowIfNotOnUIThread(); var textView = GetTextView(); var methodTask = package.JoinableTaskFactory.RunAsync(async() => await GetTargetSymbolAsync(textView).ConfigureAwait(true)); var tuple = methodTask.Join(); var symbol = tuple?.Item2; var baseType = tuple?.Item3; menuItem.Visible = false; regenerationMenuItem.Visible = false; if (symbol != null) { menuItem.Visible = true; regenerationMenuItem.Visible = Keyboard.IsKeyDown(Key.LeftShift); if (symbol.Kind == SymbolKind.NamedType) { menuItem.Text = "Generate tests for type '" + symbol.Name + "'..."; regenerationMenuItem.Text = "Regenerate tests for type '" + symbol.Name + "'..."; } else if (string.Equals(symbol.Name, ".ctor", StringComparison.OrdinalIgnoreCase)) { menuItem.Text = "Generate test for all constructors..."; regenerationMenuItem.Text = "Regenerate test for all constructors..."; } else { menuItem.Text = "Generate test for " + symbol.Kind.ToString().ToLower(CultureInfo.CurrentCulture) + " '" + symbol.Name + "'..."; regenerationMenuItem.Text = "Regenerate test for " + symbol.Kind.ToString().ToLower(CultureInfo.CurrentCulture) + " '" + symbol.Name + "'..."; } } else if (baseType.HasValue) { if (InterfaceGenerationStrategyFactory.Supports(baseType.Value)) { menuItem.Visible = true; regenerationMenuItem.Visible = Keyboard.IsKeyDown(Key.LeftShift); menuItem.Text = "Generate tests for base type '" + baseType.Value.Type.Name + "'..."; regenerationMenuItem.Text = "Regenerate tests for base type '" + baseType.Value.Type.Name + "'..."; } } }; commandService.AddCommand(menuItem); commandService.AddCommand(regenerationMenuItem); }
public void CanConstruct() { var instance = new InterfaceGenerationStrategyFactory(_frameworkSet); Assert.That(instance, Is.Not.Null); }
public void SetUp() { _frameworkSet = Substitute.For <IFrameworkSet>(); _testClass = new InterfaceGenerationStrategyFactory(_frameworkSet); }