public void TargetControlIsEnableIfInstanceIsNotNull()
    {
        Button target = new Button();
        TestableArgumentTypeControl control = new TestableArgumentTypeControl(typeof(double), target);

        control.ProcessOnClickResult(3.141);
        Assert.IsTrue(target.Enabled);
        Assert.AreEqual("3.141", target.Text);
    }
    public void NewObjectInstanceIsSavedInTargetControlTagIfNotNull()
    {
        Button target = new Button();
        TestableArgumentTypeControl control       = new TestableArgumentTypeControl(typeof(double), target);
        AnySupportedType            test_instance = new AnySupportedType();

        control.ProcessOnClickResult(test_instance);
        Assert.AreSame(test_instance, target.Tag);
        control.ProcessOnClickResult(null);
        Assert.AreSame(test_instance, target.Tag);
    }
    public void EnabledByDefaultForSupportedTypes()
    {
        TestableArgumentTypeControl control = new TestableArgumentTypeControl(typeof(AnySupportedType));

        Assert.IsTrue(control.Enabled);
    }
    public void DisabledForUnsupportedTypes()
    {
        TestableArgumentTypeControl control = new TestableArgumentTypeControl(typeof(double));

        Assert.IsFalse(control.Enabled);
    }
    public void ConstructorSavesTypeInTag()
    {
        TestableArgumentTypeControl control = new TestableArgumentTypeControl(typeof(string));

        Assert.AreEqual(typeof(String), control.Tag);
    }