public void ProcessLastresultStacksUpMessages()
    {
        TestableMemberControlPanel control = new TestableMemberControlPanel();
        ComboBox combobox = new ComboBox();

        control.ProcessLastresult("first", 10.9, new Button(), new Button(), 100, 20, combobox);
        control.ProcessLastresult("next", 10.9, new Button(), new Button(), 100, 20, combobox);
        Assert.AreEqual("100 ticks (20 ms) to next.", combobox.Items[0]);
        Assert.AreEqual("100 ticks (20 ms) to first.", combobox.Items[1]);
    }
    public void ProcessLastResultIncludesAveragesAfterFirstInvoke()
    {
        TestableMemberControlPanel control = new TestableMemberControlPanel();
        ComboBox combobox = new ComboBox();

        control.ProcessLastresult("JIT call", "object", new Button(), new Button(), 10000, 600, combobox);
        control.ProcessLastresult("Op", "object", new Button(), new Button(), 500, 20, combobox);
        Assert.AreEqual("500 ticks (20 ms) to Op.", combobox.Items[0]);
        control.ProcessLastresult("Op", "object", new Button(), new Button(), 600, 10, combobox);
        Assert.AreEqual("600 ticks (10 ms) to Op. Average 550 ticks (15 ms) over 2 invocations.", combobox.Items[0]);
    }
    public void ProcessResultEnablesStatsListingControlWhenMoreThanOneEntryAdded()
    {
        TestableMemberControlPanel control = new TestableMemberControlPanel();
        ComboBox combobox = new ComboBox();

        control.ProcessLastresult("first", 10.9, new Button(), new Button(), 100, 20, combobox);
        Assert.IsFalse(combobox.Enabled);
        control.ProcessLastresult("second", 10.9, new Button(), new Button(), 100, 20, combobox);
        Assert.IsTrue(combobox.Enabled);
        control.ProcessLastresult("second", 10.9, new Button(), new Button(), 100, 20, combobox);
        control.ProcessLastresult("second", 10.9, new Button(), new Button(), 100, 20, combobox);
        control.ProcessLastresult("second", 10.9, new Button(), new Button(), 100, 20, combobox);
        Assert.IsTrue(combobox.Enabled);
    }
    public void ProcessLastresultUpdatesDrilldownButtonText()
    {
        TestableMemberControlPanel control = new TestableMemberControlPanel();
        Button button = new Button();

        control.ProcessLastresult("foo", 10.9, button, new Button(), 100, 20, new ComboBox());
        Assert.AreEqual("Double...", button.Text);
    }
    public void ProcessLastResultIncludesInvokeCountWhenMoreThanOne()
    {
        TestableMemberControlPanel control = new TestableMemberControlPanel();

        control.InvokeCount = 100;
        ComboBox combobox = new ComboBox();

        control.ProcessLastresult("Invoke", "object", new Button(), new Button(), 500, 20, combobox);
        Assert.AreEqual("500 ticks (20 ms) to Invoke 100 times.", combobox.Items[0]);
    }
    public void NullResultHidesDrillDownButtons()
    {
        TestableMemberControlPanel control = new TestableMemberControlPanel();
        Button buttonDrilldown             = new Button();
        Button buttonAddToPool             = new Button();

        buttonDrilldown.Visible = true;
        control.ProcessLastresult("bar", null, buttonDrilldown, buttonAddToPool, 100, 20, new ComboBox());
        Assert.IsFalse(buttonDrilldown.Visible);
        Assert.IsFalse(buttonAddToPool.Visible);
    }