public void ShouldResolvePlatformSpecificObjectForInterfaceGeneric()
        {
            // Arrange
            var testRegistrationConvention = new TestProbingStrategy();
            IAdapterResolver probingAdapterResolver = new ProbingAdapterResolver(testRegistrationConvention);

            // Act
            var classType = probingAdapterResolver.Resolve<IDemoService>();

            // Assert
            classType.Should().BeOfType<DemoService>();
        }
        public void ShouldResolvePlatformSpecificClassTypeForInterface()
        {
            // Arrange
            var testRegistrationConvention = new TestProbingStrategy();
            IAdapterResolver probingAdapterResolver = new ProbingAdapterResolver(testRegistrationConvention);
            var interfaceToResolve = typeof(IDemoService);

            // Act
            var classType = probingAdapterResolver.ResolveClassType(interfaceToResolve);

            // Assert
            classType.Should().Be<DemoService>();
        }
        public void ShouldReturnNullWhenTryResolveFailsGeneric()
        {
            // Arrange
            var testRegistrationConvention = new TestProbingStrategy();
            IAdapterResolver probingAdapterResolver = new ProbingAdapterResolver(testRegistrationConvention);

            // Act
            var instance = probingAdapterResolver.TryResolve<IDemoServiceWithNoImplementation>();

            // Assert
            instance.Should().BeNull();
        }