protected void AssertMissingSymbolExceptionThrown <TException>(
            string fullSymbolName,
            Action <TException> customAssertions,
            [CallerMemberName] string testName = null)
            where TException : MissingSymbolException
        {
            YeetIfNull(testName, nameof(testName));

            var exception = Assert.Throws <TException>(
                () => _weaverTestFacade.CompileAndWeave(GetType(), testName));

            Assert.That(exception.SymbolName, Is.EqualTo(fullSymbolName));
            customAssertions?.Invoke(exception);
        }
        private static void WeaveAssemblyForSingleTest()
        {
            var popup = ScriptableObject.CreateInstance <CompileTestPopUp>();

            popup.Setup((type, testName) =>
            {
                using (var facade = new WeaverTestFacade())
                {
                    var path = facade.CompileAndWeave(type, testName);
                    Debug.Log(path);
                    EditorUtility.DisplayDialog("Weaved", path, "Ok");
                }
            });
            popup.ShowUtility();
        }
        public void OneWay_CallUsingCorrectBindingTargetType()
        {
            var weavedAssembly = _facade.CompileAndWeave(typeof(Positive_E2E_AbstractTests), nameof(Positive_E2E_AbstractTests.OneWay_CallToCorrectBindingTargetType));

            using (var assembly = ModuleDefinition.ReadModule(weavedAssembly))
            {
                var sourceType      = assembly.Types.First(definition => definition.Name == "BaseSource");
                var bindingProperty = sourceType.GetProperty("Text");
                var fromSetter      = bindingProperty.GetSetMethodOrYeet();

                foreach (var instruction in fromSetter.Body.Instructions)
                {
                    if (instruction.OpCode == OpCodes.Callvirt)
                    {
                        var toSetter     = (MethodDefinition)instruction.Operand;
                        var toSetterType = toSetter.DeclaringType;

                        Assert.That(toSetterType.FullName, Is.EqualTo("UnitsUnderTest.Positive_E2E_AbstractTests.OneWay_CallToCorrectBindingTargetType.BaseTarget"));
                    }
                }
            }
        }