public void Initialization() { var declaringType = MutableTypeObjectMother.Create(name: "DeclaringType"); var baseType = ReflectionObjectMother.GetSomeSubclassableType(); var name = "MyType"; var @namespace = "MyNs"; var attributes = (TypeAttributes)7; var mutableType = new MutableType( declaringType, baseType, name, @namespace, attributes, _interfaceMappingComputerMock, _mutableMemberFactoryMock); Assert.That(mutableType.DeclaringType, Is.SameAs(declaringType)); Assert.That(mutableType.MutableDeclaringType, Is.SameAs(declaringType)); Assert.That(mutableType.BaseType, Is.SameAs(baseType)); Assert.That(mutableType.Name, Is.EqualTo(name)); Assert.That(mutableType.Namespace, Is.EqualTo(@namespace)); Assert.That(mutableType.FullName, Is.EqualTo("MyNs.DeclaringType+MyType")); Assert.That(mutableType.Attributes, Is.EqualTo(attributes)); Assert.That(mutableType.IsGenericType, Is.False); Assert.That(mutableType.IsGenericTypeDefinition, Is.False); Assert.That(mutableType.GetGenericArguments(), Is.Empty); Assert.That(mutableType.AddedNestedTypes, Is.Empty); Assert.That(mutableType.AddedCustomAttributes, Is.Empty); Assert.That(mutableType.Initialization, Is.Not.Null); Assert.That(mutableType.AddedInterfaces, Is.Empty); Assert.That(mutableType.AddedFields, Is.Empty); Assert.That(mutableType.AddedConstructors, Is.Empty); Assert.That(mutableType.AddedMethods, Is.Empty); Assert.That(mutableType.AddedProperties, Is.Empty); Assert.That(mutableType.AddedEvents, Is.Empty); }
public void SetGenericParameterConstraints_MoreThanOneBaseConstraint() { var baseConstraint1 = ReflectionObjectMother.GetSomeSubclassableType(); var baseConstraint2 = ReflectionObjectMother.GetSomeSubclassableType(); _parameter.SetGenericParameterConstraints(new[] { baseConstraint1, baseConstraint2 }); }
public void SetGenericParameterConstraints_MoreThanOneBaseConstraint() { var baseConstraint1 = ReflectionObjectMother.GetSomeSubclassableType(); var baseConstraint2 = ReflectionObjectMother.GetSomeSubclassableType(); Assert.That( () => _parameter.SetGenericParameterConstraints(new[] { baseConstraint1, baseConstraint2 }), Throws.ArgumentException .With.ArgumentExceptionMessageEqualTo("A generic parameter cannot have multiple base constraints.", "constraints")); }
public void SetGenericParameterConstraints_BaseConstraintConflicts_WithNotNullableValueTypeConstraint() { var parameter = MutableGenericParameterObjectMother.Create(genericParameterAttributes: GenericParameterAttributes.NotNullableValueTypeConstraint); Assert.That( () => parameter.SetGenericParameterConstraints(new[] { ReflectionObjectMother.GetSomeSubclassableType() }), Throws.ArgumentException .With.ArgumentExceptionMessageEqualTo( "A generic parameter cannot have a base constraint if the NotNullableValueTypeConstraint flag is set.", "constraints")); }
public void SetParent() { var baseType = ReflectionObjectMother.GetSomeSubclassableType(); var emittableType = ReflectionObjectMother.GetSomeOtherType(); _operandProvider.Expect(mock => mock.GetEmittableType(baseType)).Return(emittableType); _innerMock.Expect(mock => mock.SetParent(emittableType)); _decorator.SetParent(baseType); _operandProvider.VerifyAllExpectations(); _innerMock.VerifyAllExpectations(); }
public void CreateClass() { var id = new object(); var name = "MyName"; var @namespace = "MyNamespace"; var baseType = ReflectionObjectMother.GetSomeSubclassableType(); var result = _context.CreateClass(id, name, @namespace, baseType); Assert.That(_context.AdditionalTypes, Is.EqualTo(new[] { new KeyValuePair <object, MutableType> (id, result) })); Assert.That(result.Name, Is.EqualTo(name)); Assert.That(result.Namespace, Is.EqualTo(@namespace)); Assert.That(result.BaseType, Is.SameAs(baseType)); Assert.That(result.Attributes, Is.EqualTo(TypeAttributes.Public | TypeAttributes.Class)); }
public void CreateType() { var name = "MyName"; var @namespace = "MyNamespace"; var attributes = (TypeAttributes)7; var baseType = ReflectionObjectMother.GetSomeSubclassableType(); var declaringType = MutableTypeObjectMother.Create(); var result = _factory.CreateType(name, @namespace, attributes, baseType, declaringType); Assert.That(result.Name, Is.EqualTo(name)); Assert.That(result.Namespace, Is.EqualTo(@namespace)); Assert.That(result.Attributes, Is.EqualTo(attributes)); Assert.That(result.BaseType, Is.SameAs(baseType)); Assert.That(result.DeclaringType, Is.SameAs(declaringType)); }
public void SetGenericParameterConstraints_BaseConstraintConflicts_WithNotNullableValueTypeConstraint() { var parameter = MutableGenericParameterObjectMother.Create(genericParameterAttributes: GenericParameterAttributes.NotNullableValueTypeConstraint); parameter.SetGenericParameterConstraints(new[] { ReflectionObjectMother.GetSomeSubclassableType() }); }