public void call_method_on_class_with_contravariant_generic_type()
        {
            //Arrange
            var getTracerParameters    = DefaultGetTracerImplementation();
            var finishTracerParameters = DefaultFinishTracerImplementation();
            var giraffe  = new Giraffe();
            var giraffes = new List <Giraffe> {
                giraffe
            };
            var animalProc       = new ContravariantProcessor <IAnimal>();
            var giraffeProcessor = animalProc;

            //Act
            giraffeProcessor.Process(giraffes);

            //Assert
            ValidateTracers(getTracerParameters, finishTracerParameters, "Process", "System.Collections.Generic.IEnumerable`1[!0]", giraffeProcessor, new object[] { giraffes }, null, null, "NewRelic.Agent.Tests.ProfiledMethods.ContravariantProcessor`1");
        }
        public void call_generic_method_on_class_with_contravariant_generic_type()
        {
            //Arrange
            var getTracerParameters    = DefaultGetTracerImplementation();
            var finishTracerParameters = DefaultFinishTracerImplementation();
            var giraffe  = new Giraffe();
            var giraffes = new List <Giraffe> {
                giraffe
            };
            var animalProc       = new ContravariantProcessor <IAnimal>();
            var giraffeProcessor = animalProc;
            var whale            = new Whale();

            //Act
            giraffeProcessor.GenericMethod <Whale>(whale);

            //Assert
            ValidateTracers(getTracerParameters, finishTracerParameters, "GenericMethod", "!!0", giraffeProcessor, new object[] { whale }, null, null, "NewRelic.Agent.Tests.ProfiledMethods.ContravariantProcessor`1");
        }