public ConstructorDependentClass(
     ClassCreatedWithAContext concreteDependency,
     IClassCreatedWithAContext abstractDependency)
 {
     ConcreteDependency =
         concreteDependency ?? throw new ArgumentNullException(nameof(concreteDependency));
     AbstractDependency =
         abstractDependency ?? throw new ArgumentNullException(nameof(abstractDependency));
 }
        public void ItShouldSpecifyTheImplementationTypeAsTheConcreteClassIfRequestingTheConcreteClass()
        {
            // Arrange
            Guid data = Guid.NewGuid();

            // Act
            ClassCreatedWithAContext actual = Container.GetService <ClassCreatedWithAContext>(data);

            // Assert
            actual.Should().NotBeNull();
            actual.Context.Extra.Should().Be(data);
            actual.Context.ImplementationType.Should().Be(typeof(ClassCreatedWithAContext));
            actual.Context.RecipientType.Should().Be(typeof(void));
        }
            internal static ClassCreatedWithAContext StrongCreate(ConstructionContext <Guid> context)
            {
                var service = new ClassCreatedWithAContext(context);

                return(service);
            }