public void EventsToImplement_WriteSyntax_EventStrategyCalled()
        {
            WithSourceFiles(Files.ChildClass, Files.Mixin);
            var childClass = CreateClass(nameof(ChildClassWithEventsFromMixin));
            var mixin = CreateMixinReference(childClass, "_mixin");

            var eventStrategy = Substitute.For<IImplementMemberForwarding>();

            var includeWriter = new IncludeSyntaxWriterTestDummy(
                mixin.Class.Events,
                mixin,
                typeof(Event),
                eventStrategy);
            includeWriter.Visit(childClass.SourceCode);

            eventStrategy.Received().ImplementMember(mixin.Class.Events.Single(), Arg.Any<int>());

        }
        public void PropertiesToImplement_WriteSyntax_PropertyStrategyCalled()
        {
            WithSourceFiles(Files.Person, Files.Name);
            var person = CreateClass(nameof(Person));
            var mixin = CreateMixinReference(person, "_name");

            var propertyStrategy = Substitute.For<IImplementMemberForwarding>();
             
            var includeWriter = new IncludeSyntaxWriterTestDummy(
                mixin.Class.Properties,
                mixin, 
                typeof(Property),
                propertyStrategy);
            includeWriter.Visit(person.SourceCode);

            // ensure that the implementMember of the propertyStrategy was called
            propertyStrategy.Received().ImplementMember(Arg.Any<Member>(), Arg.Any<int>());          
        }