public void EnsureReferenceToNotifyPropertyWeaverIsRemoved()
 {
     var weaverHelper = new WeaverHelper(@"AssemblyThatIsSigned\AssemblyThatIsSigned.csproj", false);
     var instance = weaverHelper.Assembly.GetInstance("ClassWithProperties");
     EventTester.TestProperty(instance, false);
     Assert.AreEqual(GetAssemblyPublickKeyToken(weaverHelper.Assembly), "3a0be277382290ee");
 }
Beispiel #2
0
    public void Foo()
    {
        var weaverHelper = new WeaverHelper(@"AssemblyExperiments\AssemblyExperiments.csproj");

        Verifier.Verify(weaverHelper.BeforeAssemblyPath, weaverHelper.AfterAssemblyPath);
        weaverHelper.Assembly.GetInstance("Experiment");
    }
Beispiel #3
0
    public void TestClassIsNotBlocked()
    {
        var weaverHelper = new WeaverHelper("AssemblyWithBlockingClass");
        var instance     = weaverHelper.Assembly.GetInstance("B");

        EventTester.TestProperty(instance, false);
    }
    public void Foo()
    {
        var weaverHelper = new WeaverHelper(@"AssemblyReferencingExecutable\AssemblyReferencingExecutable.csproj", true);

        var instance = weaverHelper.Assembly.GetInstance("ClassChild");
        EventTester.TestProperty(instance, false);
    }
Beispiel #5
0
    public void Simple()
    {
        var weaverHelper = new WeaverHelper(@"AssemblyFSharp\AssemblyFSharp.fsproj");
        var instance     = weaverHelper.Assembly.GetInstance("Namespace.ClassWithProperties");

        EventTester.TestProperty(instance, false);
    }
    public void Simple()
    {
        var weaverHelper = new WeaverHelper(@"AssemblyWithLotsOfCodeInProperty\AssemblyWithLotsOfCodeInProperty.csproj", true);
        var instance     = weaverHelper.Assembly.GetInstance("ClassWithProperties");

        EventTester.TestProperty(instance, false);
    }
    public void Foo()
    {
        var weaverHelper = new WeaverHelper(@"AssemblyExperiments\AssemblyExperiments.csproj");

                var instance = weaverHelper.Assembly.GetInstance("ClassExperiment");
        instance.MixDateTimeOffset = DateTimeOffset.Now;
    }
Beispiel #8
0
        static void Main(string[] args)
        {
            var n            = new SimpleTest.NestedTypesTest.NestedTypesTestClass();
            var weaverHelper = new WeaverHelper(@"SimpleTest\SimpleTest.csproj");

            weaverHelper.Weave();
        }
Beispiel #9
0
    public void Test_Errors([NotNull] string test, [NotNull] string expectedError)
    {
        var weaverHelper = WeaverHelper.Create($"{test}/AssemblyToProcess");

        Assert.Equal(1, weaverHelper.Errors.Count());
        Assert.Equal(expectedError, weaverHelper.Errors.First());
    }
    public void Foo()
    {
        var weaverHelper = new WeaverHelper(@"AssemblyExperiments\AssemblyExperiments.csproj");
        var instance     = weaverHelper.Assembly.GetInstance("ExperimentClass");

        EventTester.TestProperty(instance, false);
    }
    public void Test_Errors(string test, string expectedError)
    {
        var weaverHelper = WeaverHelper.Create($"{test}/AssemblyToProcess");

        Assert.Single(weaverHelper.Errors);
        Assert.Equal(expectedError, weaverHelper.Errors.First());
    }
    public void Foo()
    {
        var weaverHelper = new WeaverHelper(@"AssemblyExperiments\AssemblyExperiments.csproj", true);

        var instance = weaverHelper.Assembly.GetInstance("ExperimentClass");
        Verifier.Verify(weaverHelper.Assembly.Location);
    }
        private void EIBuffParse(List <Player> players, SkillData skillData, FightData fightData)
        {
            var toAdd = new List <AbstractBuffEvent>();

            foreach (Player p in players)
            {
                if (p.Spec == ParserHelper.Spec.Weaver)
                {
                    toAdd.AddRange(WeaverHelper.TransformWeaverAttunements(GetBuffData(p.AgentItem), _buffData, p.AgentItem, skillData));
                }
                if (p.BaseSpec == ParserHelper.Spec.Elementalist && p.Spec != ParserHelper.Spec.Weaver)
                {
                    ElementalistHelper.RemoveDualBuffs(GetBuffData(p.AgentItem), _buffData, skillData);
                }
            }
            toAdd.AddRange(fightData.Logic.SpecialBuffEventProcess(this, skillData));
            var buffIDsToSort    = new HashSet <long>();
            var buffAgentsToSort = new HashSet <AgentItem>();

            foreach (AbstractBuffEvent bf in toAdd)
            {
                if (_buffDataByDst.TryGetValue(bf.To, out List <AbstractBuffEvent> buffByDstList))
                {
                    buffByDstList.Add(bf);
                }
                else
                {
                    _buffDataByDst[bf.To] = new List <AbstractBuffEvent>()
                    {
                        bf
                    };
                }
                buffAgentsToSort.Add(bf.To);
                if (_buffData.TryGetValue(bf.BuffID, out List <AbstractBuffEvent> buffByIDList))
                {
                    buffByIDList.Add(bf);
                }
                else
                {
                    _buffData[bf.BuffID] = new List <AbstractBuffEvent>()
                    {
                        bf
                    };
                }
                buffIDsToSort.Add(bf.BuffID);
            }
            foreach (long buffID in buffIDsToSort)
            {
                _buffData[buffID] = _buffData[buffID].OrderBy(x => x.Time).ToList();
            }
            foreach (AgentItem a in buffAgentsToSort)
            {
                _buffDataByDst[a] = _buffDataByDst[a].OrderBy(x => x.Time).ToList();
            }
            if (toAdd.Any())
            {
                _buffRemoveAllData = _buffData.ToDictionary(x => x.Key, x => x.Value.OfType <BuffRemoveAllEvent>().ToList());
            }
        }
Beispiel #14
0
    public void Foo()
    {
        var weaverHelper = new WeaverHelper(@"AssemblyExperiments\AssemblyExperiments.csproj");

        var instance = weaverHelper.Assembly.GetInstance("ClassExperiment");

        instance.MixDateTimeOffset = DateTimeOffset.Now;
    }
    public void EnsureReferenceToNotifyPropertyWeaverIsRemoved()
    {
        var weaverHelper = new WeaverHelper(@"AssemblyThatIsSigned\AssemblyThatIsSigned.csproj", false);
        var instance     = weaverHelper.Assembly.GetInstance("ClassWithProperties");

        EventTester.TestProperty(instance, false);
        Assert.AreEqual(GetAssemblyPublickKeyToken(weaverHelper.Assembly), "3a0be277382290ee");
    }
 public void WithOnNotify()
 {
     var weaverHelper = new WeaverHelper(@"AssemblyInheritingBadNamedInvoker\AssemblyInheritingBadNamedInvoker.csproj");
      weaverHelper.Assembly.GetInstance("ChildClass");
     //TODO: validate that a log message is written
     //TODO: move ClassWithForwardedEvent.cs into own project and do the same kind of test
     //EventTester.TestProperty(instance, false);
 }
    public void Foo()
    {
        var weaverHelper = new WeaverHelper(@"AssemblyExperiments\AssemblyExperiments.csproj", true);

        var instance = weaverHelper.Assembly.GetInstance("ExperimentClass");

        Verifier.Verify(weaverHelper.Assembly.Location);
    }
Beispiel #18
0
 public void WithOnNotify()
 {
     var weaverHelper = new WeaverHelper(@"AssemblyInheritingBadNamedInvoker\AssemblyInheritingBadNamedInvoker.csproj");
     var instance     = weaverHelper.Assembly.GetInstance("ChildClass");
     //TODO: validate that a log message is written
     //TODO: move ClassWithForwardedEvent.cs into own project and do the same kind of test
     //EventTester.TestProperty(instance, false);
 }
    public void Foo()
    {
        var weaverHelper = new WeaverHelper(@"AssemblyReferencingExecutable\AssemblyReferencingExecutable.csproj", true);

        var instance = weaverHelper.Assembly.GetInstance("ClassChild");

        EventTester.TestProperty(instance, false);
    }
Beispiel #20
0
    public SerilogTests()
    {
        beforeAssemblyPath = Path.GetFullPath(@"..\..\..\SerilogAssemblyToProcess\bin\Debug\SerilogAssemblyToProcess.dll");
#if (!DEBUG)
        beforeAssemblyPath = beforeAssemblyPath.Replace("Debug", "Release");
#endif
        afterAssemblyPath = WeaverHelper.Weave(beforeAssemblyPath);
        assembly          = Assembly.LoadFile(afterAssemblyPath);
    }
Beispiel #21
0
    public void Test3()
    {
        var assembly = WeaverHelper.Create("Test3/AssemblyToProcess").Assembly;

        var form = assembly.GetInstance("AssemblyToProcess.TestForm");

        Assert.Equal("Form:MyResourceManager", form.Text);
        Assert.Equal("MyForm", form.Value);
    }
Beispiel #22
0
    public void Test1Partial()
    {
        var assembly = WeaverHelper.Create("Test1/AssemblyToProcess").Assembly;

        var target = assembly.GetInstance("AssemblyToProcess.SubstitutionSubjectClass");

        Assert.Equal("\"Test\"", target.GetText());
        Assert.Equal("Test", target.GetOriginalText());
    }
Beispiel #23
0
        private void EIBuffParse(List <Player> players, SkillData skillData, FightData fightData)
        {
            var toAdd = new List <AbstractBuffEvent>();

            WarriorHelper.AttachMasterToBanners(players, _buffData, _castDataById);
            foreach (Player p in players)
            {
                if (p.Prof == "Weaver")
                {
                    toAdd = WeaverHelper.TransformWeaverAttunements(GetBuffDataByDst(p.AgentItem), p.AgentItem, skillData);
                }
                if (p.Prof == "Elementalist" || p.Prof == "Tempest")
                {
                    ElementalistHelper.RemoveDualBuffs(GetBuffDataByDst(p.AgentItem), skillData);
                }
            }
            toAdd.AddRange(fightData.Logic.SpecialBuffEventProcess(_buffDataByDst, _buffData, skillData));
            var buffIDsToSort    = new HashSet <long>();
            var buffAgentsToSort = new HashSet <AgentItem>();

            foreach (AbstractBuffEvent bf in toAdd)
            {
                if (_buffDataByDst.TryGetValue(bf.To, out List <AbstractBuffEvent> list1))
                {
                    list1.Add(bf);
                }
                else
                {
                    _buffDataByDst[bf.To] = new List <AbstractBuffEvent>()
                    {
                        bf
                    };
                }
                buffAgentsToSort.Add(bf.To);
                if (_buffData.TryGetValue(bf.BuffID, out List <AbstractBuffEvent> list2))
                {
                    list2.Add(bf);
                }
                else
                {
                    _buffData[bf.BuffID] = new List <AbstractBuffEvent>()
                    {
                        bf
                    };
                }
                buffIDsToSort.Add(bf.BuffID);
            }
            foreach (long buffID in buffIDsToSort)
            {
                _buffData[buffID].Sort((x, y) => x.Time.CompareTo(y.Time));
            }
            foreach (AgentItem a in buffAgentsToSort)
            {
                _buffDataByDst[a].Sort((x, y) => x.Time.CompareTo(y.Time));
            }
        }
Beispiel #24
0
    public void Test1a()
    {
        var assembly = WeaverHelper.Create("Test1/AssemblyToProcess").Assembly;

        var target   = assembly.GetInstance("AssemblyToProcess.UsageOfInterface");
        var expected = new[] { "A", "B", "C" };

        Assert.True(expected.SequenceEqual((IEnumerable <string>)target.Explicit));
        Assert.True(expected.SequenceEqual((IEnumerable <string>)target.Derived));
    }
Beispiel #25
0
    public SerilogTests()
    {
        AppDomainAssemblyFinder.Attach();
        beforeAssemblyPath = Path.GetFullPath(Path.Combine(TestContext.CurrentContext.TestDirectory, @"..\..\..\SerilogAssemblyToProcess\bin\Debug\SerilogAssemblyToProcess.dll"));
#if (!DEBUG)
        beforeAssemblyPath = beforeAssemblyPath.Replace("Debug", "Release");
#endif
        afterAssemblyPath = WeaverHelper.Weave(beforeAssemblyPath);
        assembly          = Assembly.LoadFile(afterAssemblyPath);
    }
Beispiel #26
0
    public CustomTests()
    {
        AppDomainAssemblyFinder.Attach();
        beforeAssemblyPath = Path.GetFullPath(@"..\..\..\CustomAssemblyToProcess\bin\Debug\CustomAssemblyToProcess.dll");
#if (!DEBUG)
        beforeAssemblyPath = beforeAssemblyPath.Replace("Debug", "Release");
#endif
        afterAssemblyPath = WeaverHelper.Weave(beforeAssemblyPath);
        assembly          = Assembly.LoadFile(afterAssemblyPath);
    }
Beispiel #27
0
        public void Weave_CustomAssembly_WeavesCorrectIL()
        {
            var path           = Path.GetFullPath(@"..\path\to\your\assembly.dll");
            var customAssembly = WeaverHelper.WeaveAssembly(11, path);
            var assemblyPath   = customAssembly.CodeBase.Remove(0, 8);
            var result         = Verifier.Verify(assemblyPath);

            Console.WriteLine(result);

            Assert.IsTrue(result.Contains(string.Format("All Classes and Methods in {0} Verified.", assemblyPath)));
        }
Beispiel #28
0
    public GenericExternalTests()
    {
        AppDomainAssemblyFinder.Attach();
        var beforeAssemblyPath = Path.GetFullPath(Path.Combine(TestContext.CurrentContext.TestDirectory, @"..\..\..\WithGenericExternal\bin\Debug\WithGenericExternal.dll"));

#if (!DEBUG)
        beforeAssemblyPath = beforeAssemblyPath.Replace("Debug", "Release");
#endif
        afterAssemblyPath = WeaverHelper.Weave(beforeAssemblyPath);
        assembly          = Assembly.LoadFile(afterAssemblyPath);
    }
    public void CheckIfFilterTypeExcludeRightTypes()
    {
        var weaverHelper = new WeaverHelper(@"AssemblyWithTypeFilter\AssemblyWithTypeFilter.csproj");

        var assembly = weaverHelper.Assembly;
        var instance = assembly.GetInstance("TestClassExclude");
        EventTester.TestPropertyNotCalled(instance);
        instance = assembly.GetInstance("PropertyChangedTest.TestClassInclude");
        EventTester.TestProperty(instance, false);
        Verifier.Verify(weaverHelper.BeforeAssemblyPath, weaverHelper.AfterAssemblyPath);
    }
    public NonGenericExternalTests()
    {
        AppDomainAssemblyFinder.Attach();
        var beforeAssemblyPath = Path.GetFullPath(@"..\..\..\WithNonGenericExternal\bin\Debug\WithNonGenericExternal.dll");

#if (!DEBUG)
        beforeAssemblyPath = beforeAssemblyPath.Replace("Debug", "Release");
#endif
        afterAssemblyPath = WeaverHelper.Weave(beforeAssemblyPath);
        assembly          = Assembly.LoadFile(afterAssemblyPath);
    }
Beispiel #31
0
    public void CheckIfFilterTypeExcludeRightTypes()
    {
        var weaverHelper = new WeaverHelper(@"AssemblyWithTypeFilter\AssemblyWithTypeFilter.csproj");

        var assembly = weaverHelper.Assembly;
        var instance = assembly.GetInstance("TestClassExclude");

        EventTester.TestPropertyNotCalled(instance);
        instance = assembly.GetInstance("PropertyChangedTest.TestClassInclude");
        EventTester.TestProperty(instance, false);
        Verifier.Verify(weaverHelper.BeforeAssemblyPath, weaverHelper.AfterAssemblyPath);
    }
Beispiel #32
0
    public CommonLoggingTests()
    {
        AppDomainAssemblyFinder.Attach();
        beforeAssemblyPath = Path.GetFullPath(@"..\..\..\CommonLoggingAssemblyToProcess\bin\Debug\CommonLoggingAssemblyToProcess.dll");
#if (!DEBUG)
        beforeAssemblyPath = beforeAssemblyPath.Replace("Debug", "Release");
#endif
        afterAssemblyPath  = WeaverHelper.Weave(beforeAssemblyPath);
        assembly           = Assembly.LoadFile(afterAssemblyPath);
        actionAdapter      = new ActionAdapter();
        LogManager.Adapter = actionAdapter;
    }
 public void BeforeAfter()
 {
     var weaverHelper = new WeaverHelper(@"AssemblyWithBeforeAfterInterceptor\AssemblyWithBeforeAfterInterceptor.csproj");
     var assembly = weaverHelper.Assembly;
     var instance = assembly.GetInstance("ClassToTest");
     EventTester.TestProperty(instance, false);
     var type = assembly.GetType("PropertyChangedNotificationInterceptor");
     var propertyInfo = type.GetProperty("InterceptCalled", BindingFlags.Static | BindingFlags.Public);
     var value = (bool)propertyInfo.GetValue(null, null);
     Assert.IsTrue(value);
     Verifier.Verify(weaverHelper.BeforeAssemblyPath, weaverHelper.AfterAssemblyPath);
 }
Beispiel #34
0
        static void Main(string[] args)
        {
#if (!DEBUG)
            assemblyPath = assemblyPath.Replace("Debug", "Release");
#endif

            var newAssemblyPath = WeaverHelper.Weave(assemblyPath);
            var assembly        = Assembly.LoadFile(newAssemblyPath);
            var type            = assembly.GetType("ConsoleApp2.PluginName1Logic1");
            var instance        = (dynamic)Activator.CreateInstance(type);
            instance.ExecuteLogic();
        }
Beispiel #35
0
    public SplatTests()
    {
        AppDomainAssemblyFinder.Attach();
        beforeAssemblyPath = Path.GetFullPath(@"..\..\..\SplatAssemblyToProcess\bin\Debug\SplatAssemblyToProcess.dll");
#if (!DEBUG)
        beforeAssemblyPath = beforeAssemblyPath.Replace("Debug", "Release");
#endif
        afterAssemblyPath = WeaverHelper.Weave(beforeAssemblyPath);
        assembly          = Assembly.LoadFile(afterAssemblyPath);

        Locator.CurrentMutable.Register(() => new FuncLogManager(GetLogger), typeof(ILogManager));
    }
 public void BeforeAfter()
 {
     var weaverHelper = new WeaverHelper(@"AssemblyWithBeforeAfterInterceptor\AssemblyWithBeforeAfterInterceptor.csproj", true);
     var assembly = weaverHelper.Assembly;
     var instance = assembly.GetInstance("ClassToTest");
     EventTester.TestProperty(instance, false);
     var type = assembly.GetType("PropertyNotificationInterceptor");
     var propertyInfo = type.GetProperty("InterceptCalled", BindingFlags.Static | BindingFlags.Public);
     var value = (bool)propertyInfo.GetValue(null, null);
     Assert.IsTrue(value);
     Verifier.Verify(assembly.CodeBase.Replace("file:///", string.Empty));
 }
Beispiel #37
0
    public NServiceBusTests()
    {
        AppDomainAssemblyFinder.Attach();
        beforeAssemblyPath = Path.GetFullPath(@"..\..\..\NServiceBusAssemblyToProcess\bin\Debug\NServiceBusAssemblyToProcess.dll");
#if (!DEBUG)
        beforeAssemblyPath = beforeAssemblyPath.Replace("Debug", "Release");
#endif
        afterAssemblyPath = WeaverHelper.Weave(beforeAssemblyPath);
        assembly          = Assembly.LoadFile(afterAssemblyPath);

        LogManager.UseFactory(new LogCapture(this));
    }
Beispiel #38
0
    public void Issue33()
    {
        // We need to load a custom assembly because the C# compiler won't generate the IL
        // that caused the issue, but NullGuard does.
        var afterIssue33Path = WeaverHelper.Weave(Path.GetFullPath("NullGuardAnotarBug.dll"));
        var issue33Assembly  = Assembly.LoadFile(afterIssue33Path);

        var type     = issue33Assembly.GetType("NullGuardAnotarBug");
        var instance = (dynamic)Activator.CreateInstance(type);

        Assert.NotNull(instance.DoIt());
    }
 public AssemblyWithBaseInDifferentModuleTests()
 {
     weaverHelper = new WeaverHelper(@"AssemblyWithBaseInDifferentModule\AssemblyWithBaseInDifferentModule.csproj");
 }
 public void Foo()
 {
     var weaverHelper = new WeaverHelper(@"AssemblyExperiments\AssemblyExperiments.csproj");
     Verifier.Verify(weaverHelper.BeforeAssemblyPath, weaverHelper.AfterAssemblyPath);
     weaverHelper.Assembly.GetInstance("Experiment");
 }
 public void Foo()
 {
     var weaverHelper = new WeaverHelper(@"AssemblyExperiments\AssemblyExperiments.csproj");
     var instance = weaverHelper.Assembly.GetInstance("ExperimentClass");
     EventTester.TestProperty(instance, false);
 }
 public void Setup()
 {
     var weaverHelper = new WeaverHelper(projectPath, false);
     assembly = weaverHelper.Assembly;
 }
 public virtual void Setup()
 {
     var weaverHelper = new WeaverHelper(projectPath);
     assembly = weaverHelper.Assembly;
 }
Beispiel #44
0
 public DecoratedSimpleTest()
 {
     var weaverHelper = new WeaverHelper(@"SimpleTest\SimpleTest.csproj");
     Assembly = weaverHelper.Weave();
 }
 public void EnsureNoExceptionTempFile()
 {
     var weaverHelper = new WeaverHelper(projectPath, true);
     Assert(weaverHelper.Assembly);
 }
 public void Setup()
 {
     weaverHelper = new WeaverHelper(projectPath);
     assembly = weaverHelper.Assembly;
 }
 public void Setup()
 {
     var weaverHelper = new WeaverHelper(_projectPath, _configureAction);
     Assembly = weaverHelper.Assembly;
 }
Beispiel #48
0
 public void EnsureReferenceIsRemoved()
 {
     var weaverHelper = new WeaverHelper(@"AssemblyFSharp\AssemblyFSharp.fsproj");
     var instance = weaverHelper.Assembly.GetInstance("Namespace.ClassWithProperties");
     EventTester.TestProperty(instance, false);
 }
    public void Foo()
    {
        var weaverHelper = new WeaverHelper(@"AssemblyExperiments\AssemblyExperiments.csproj");

        //        var instance = weaverHelper.Assembly.GetInstance("ExperimentClass");
    }
 public void EnsureNoExceptionInMemory()
 {
     var weaverHelper = new WeaverHelper(projectPath, false);
     Assert(weaverHelper.Assembly);
 }
 public void TestClassIsNotBlocked()
 {
     var weaverHelper = new WeaverHelper(@"AssemblyWithBlockingClass\AssemblyWithBlockingClass.csproj", true);
     var instance = weaverHelper.Assembly.GetInstance("B");
     EventTester.TestProperty(instance, false);
 }
 public WeaverTests()
 {
     var projectPath = Path.Combine(TestContext.CurrentContext.TestDirectory, @"..\..\..\AssemblyToProcess\AssemblyToProcess.fsproj");
     weaverHelper = new WeaverHelper(projectPath);
 }
 private static Assembly CreateAssembly() {
     var weaverHelper = new WeaverHelper(@"SimpleTest\SimpleTest.csproj");
     return weaverHelper.Weave();
 }
 public void Simple()
 {
     var weaverHelper = new WeaverHelper(@"AssemblyWithLotsOfCodeInProperty\AssemblyWithLotsOfCodeInProperty.csproj", true);
     var instance = weaverHelper.Assembly.GetInstance("ClassWithProperties");
     EventTester.TestProperty(instance, false);
 }
 public FSharpTest()
 {
     weaverHelper = new WeaverHelper(@"AssemblyFSharp\AssemblyFSharp.fsproj");
 }