Example #1
0
    private MockActivator ActivatorFor(Task p)
    {
        MockActivator activator = new MockActivator();

        ((IActivatable)p).Bind(activator);
        return(activator);
    }
Example #2
0
    public void TestFieldSetterActivatesObject()
    {
        FieldSetterTestSubject obj = new FieldSetterTestSubject();
        MockActivator          a   = ActivatorFor(obj);

        Assert.AreEqual(0, a.ReadCount);

        obj.intValue = 10;
        int writeCount = 1;

        Assert.AreEqual(writeCount++, a.WriteCount);

        obj.refValue = null;
        Assert.AreEqual(writeCount++, a.WriteCount);

        obj.volatileByte = 3;
        Assert.AreEqual(writeCount++, a.WriteCount);

        Assert.AreEqual(0, a.ReadCount);
        obj.valueType.intValue = 4;
        Assert.AreEqual(1, a.ReadCount);

        obj.valueType = new ValueTypeSubject(5);
        Assert.AreEqual(writeCount++, a.WriteCount);

        obj.intList = new List <int>(6);
        Assert.AreEqual(writeCount++, a.WriteCount);
        Assert.AreEqual(1, a.ReadCount);
    }
Example #3
0
    public void _TestActivatableInheritedFromNonActivatableAccessingSuperField()
    {
        ActivatableInheritedFromNonActivatable subject = new ActivatableInheritedFromNonActivatable();
        MockActivator a = ActivatorFor(subject);

        Assert.IsTrue(subject.Equals(subject));
        Assert.AreEqual(2, a.ReadCount);
    }
Example #4
0
    public void _TestActivatableInheritedFromNonActivatableCallingSuper()
    {
        ActivatableInheritedFromNonActivatable subject = new ActivatableInheritedFromNonActivatable();
        MockActivator a = ActivatorFor(subject);

        subject.ToString();
        Assert.AreEqual(1, a.ReadCount);
    }
Example #5
0
    public void TestArbitraryArityGenericInstrumentation()
    {
        GenericContainerN <int, string, int> container = new GenericContainerN <int, string, int>();
        MockActivator a = ActivatorFor(container);

        Assert.AreEqual(0, container.Foo);
        Assert.AreEqual(1, a.ReadCount);
    }
        public void TestCopyTo()
        {
            ArrayList4 <int> list      = new ArrayList4 <int>();
            MockActivator    activator = MockActivator.ActivatorFor(list);

            list.CopyTo(new int[1], 0);
            Assert.AreEqual(1, activator.ReadCount());
        }
Example #7
0
    public void TestVolatileAccess()
    {
        VolatileContainer container = new VolatileContainer();
        MockActivator     a         = ActivatorFor(container);

        Assert.AreEqual(0, container.Foo);
        Assert.AreEqual(1, a.ReadCount);
    }
Example #8
0
    public void TestGenericInstrumentation()
    {
        GenericContainer <int> container = new GenericContainer <int>();
        MockActivator          a         = ActivatorFor(container);

        Assert.AreEqual(0, container.Foo);
        Assert.AreEqual(1, a.ReadCount);
    }
Example #9
0
    public void TestGenericFieldOnGenericType()
    {
        GenericFieldOnGenericType <int> obj = new GenericFieldOnGenericType <int>();
        MockActivator a = ActivatorFor(obj);

        Assert.AreEqual(0, obj.Foo);
        Assert.AreEqual(1, a.ReadCount);
    }
Example #10
0
    public void TestGenericFieldContainer()
    {
        GenericFieldContainer container = new GenericFieldContainer();
        MockActivator         a         = ActivatorFor(container);

        Assert.IsNull(container.Foo);
        Assert.AreEqual(1, a.ReadCount);
    }
Example #11
0
    public void TestConstrainedGenericMethod()
    {
        Tagged        obj = new Tagged("foo, bar");
        MockActivator a   = ActivatorFor(obj);

        Assert.AreEqual("foo, bar", GenericMethods.ConstrainedMethod(obj));
        Assert.AreEqual(1, a.ReadCount);
    }
Example #12
0
    public void TestFieldByRef()
    {
        Project       p1 = new Project("test");
        MockActivator a1 = ActivatorFor(p1);

        p1.UseByRef();

        Assert.AreEqual(1, a1.ReadCount);
    }
Example #13
0
    public void TestPropertyGetter()
    {
        Task          p         = new Task("test");
        MockActivator activator = ActivatorFor(p);

        Assert.AreEqual(0, activator.ReadCount);
        Assert.AreEqual("test", p.Name);
        Assert.AreEqual(1, activator.ReadCount);
    }
Example #14
0
    public void TestGoto()
    {
        Activity      activity = new Activity();
        GotoSubject   subject  = new GotoSubject(activity);
        MockActivator a        = ActivatorFor(subject);

        subject.Run(2);
        ArrayAssert.AreEqual(new string[] { "before", "search", "search" }, activity.Checkpoints);
        Assert.AreEqual(3, a.ReadCount);
    }
Example #15
0
    public void TestSubjectHoldingArray()
    {
        SubjectHoldingArray subject = new SubjectHoldingArray();
        MockActivator       a       = ActivatorFor(subject);

        subject.Items = null;
        Assert.AreEqual(1, a.WriteCount);
        Assert.AreEqual(null, subject.Items);
        Assert.AreEqual(1, a.ReadCount);
    }
Example #16
0
    public void TestTryCatchWithoutException()
    {
        Activity          activity = new Activity();
        TryFinallySubject subject  = new TryFinallySubject(activity);
        MockActivator     a        = ActivatorFor(subject);

        Assert.AreEqual("foo", subject.TryCatch("foo"));
        ArrayAssert.AreEqual(new string[] { "BeforeTry", "Try", "Finally" }, activity.Checkpoints);
        Assert.AreEqual(3, a.ReadCount);
    }
Example #17
0
    public void TestGenericInherited()
    {
        GenericInherited obj = new GenericInherited();
        MockActivator    a   = ActivatorFor(obj);

        Assert.AreEqual(0, obj.Foo);
        Assert.AreEqual(1, a.ReadCount);
        Assert.AreEqual(0, obj.Bar);
        Assert.AreEqual(2, a.ReadCount);
    }
    public void TestFieldAccessesInConstructors()
    {
        Item          template  = new Item();
        MockActivator activator = ActivatorFor(template);

        new Item(template);

        Assert.AreEqual(2, activator.ReadCount);
        Assert.AreEqual(0, activator.WriteCount);
    }
Example #19
0
    public void TestTryCatchWithException()
    {
        Activity          activity = new Activity();
        TryFinallySubject subject  = new TryFinallySubject(activity);
        MockActivator     a        = ActivatorFor(subject);

        Assert.IsInstanceOf(typeof(NullReferenceException), subject.TryCatch(null));
        ArrayAssert.AreEqual(new string[] { "BeforeTry", "Catch", "Finally" }, activity.Checkpoints);
        Assert.AreEqual(3, a.ReadCount);
    }
Example #20
0
    public void TestFilteredOutClassesStillActivateForeignFields()
    {
        Assert.IsFalse(IsActivatable(typeof(FilteredOutByName)));

        Task          t         = new Task("test");
        MockActivator activator = ActivatorFor(t);

        FilteredOutByName.CheckTask(t);

        Assert.AreEqual(1, activator.ReadCount);
    }
Example #21
0
    public void TestBindSameActivator()
    {
        Tagged        obj         = new Tagged("test");
        MockActivator ma          = ActivatorFor(obj);
        IActivatable  activatable = (IActivatable)obj;

        activatable.Bind(ma);

        string tags = obj.tags;

        Assert.AreEqual(1, ma.ReadCount);
    }
Example #22
0
    public void TestFilteredOutFieldAccess()
    {
        FilteredOut   subject   = new FilteredOut("test");
        MockActivator activator = ActivatorFor(subject);

        // TA instrumentation would normally
        // instrument the field access on the
        // next line EXCEPT that FilteredOut
        // was filtered out
        Assert.AreEqual("test", subject.foo);
        Assert.AreEqual(0, activator.ReadCount);
    }
Example #23
0
    public void TestForeignFieldAccess()
    {
        Project p1 = new Project("test");
        Project p2 = new Project("test");

        MockActivator a1 = ActivatorFor(p1);
        MockActivator a2 = ActivatorFor(p2);

        Assert.IsTrue(p1.Equals(p2));

        Assert.AreEqual(1, a1.ReadCount);
        Assert.AreEqual(1, a2.ReadCount);
    }
Example #24
0
    public void TestForeignFieldAccess()
    {
        Task p1 = new Task("test");
        Task p2 = new Task("test");

        MockActivator a1 = ActivatorFor(p1);
        MockActivator a2 = ActivatorFor(p2);

        Assert.IsTrue(p1.Equals(p2));

        Assert.AreEqual(1, a1.ReadCount, "a1");
        Assert.AreEqual(1, a2.ReadCount, "a2");
    }
Example #25
0
    public void TestBindDifferentActivator()
    {
        Tagged        obj         = new Tagged("test");
        MockActivator ma          = ActivatorFor(obj);
        IActivatable  activatable = (IActivatable)obj;

        Assert.Expect(
            typeof(InvalidOperationException),
            delegate
        {
            activatable.Bind(ActivatorFor(obj));
        });
    }
Example #26
0
    public void TestIsTransient()
    {
        CustomActivatable ca = new CustomActivatable();
        MockActivator     ma = ActivatorFor(ca);

        Assert.AreEqual(0, ma.ReadCount);

        int n = ca._mustNotInstrumentMe;

        Assert.AreEqual(0, ma.ReadCount);

        n = ca._mustInstrumentAccess;
        Assert.AreEqual(1, ma.ReadCount);
    }
Example #27
0
    public void TestSwitch()
    {
        SwitchSubject subject = new SwitchSubject();
        MockActivator a       = ActivatorFor(subject);

        subject.Update(1, "foo");
        Assert.AreEqual(1, a.WriteCount);
        Assert.AreEqual("foo", subject.Get(1));
        Assert.AreEqual(1, a.ReadCount);

        subject.Update(2, "bar");
        Assert.AreEqual(2, a.WriteCount);
        Assert.AreEqual("bar", subject.Get(2));
        Assert.AreEqual(2, a.ReadCount);
    }
 private MockActivator ActivatorFor(object p)
 {
     return(MockActivator.ActivatorFor(p));
 }
Example #29
0
 public void SetUp()
 {
     dict      = CreateDictionary();
     activator = MockActivator.ActivatorFor(dict);
 }