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"); }
public void call_generic_method_on_class_with_covariant_generic_type() { //Arrange var getTracerParameters = DefaultGetTracerImplementation(); var finishTracerParameters = DefaultFinishTracerImplementation(); var whaleFactory = new CovariantFactory <Whale>(); var factories = new List <ICovariantFactory <IAnimal> > { whaleFactory }; IAnimal animal = null; ICovariantFactory <IAnimal> animalFactory = null; var giraffe = new Giraffe(); //Act foreach (var factory in factories) { animalFactory = factory; animal = animalFactory.GenericMethod <Giraffe>(giraffe); } //Assert ValidateTracers(getTracerParameters, finishTracerParameters, "GenericMethod", "!!0", animalFactory, new object[] { giraffe }, animal, null, "NewRelic.Agent.Tests.ProfiledMethods.CovariantFactory`1"); }