예제 #1
0
        public void GetTraitOptions_ViaAttributeUsage()
        {
            var source = new FakeAttribute();

            var expected = new TraitOptions
            {
                ValidOn       = AttributeTargets.Property,
                AllowMultiple = true,
                Inherited     = false
            };

            AssertTraitOptions(source, expected);
        }
예제 #2
0
        public void DisposeTest()
        {
            var attr = new FakeAttribute {
                ContextKey = "A"
            };
            var contextStack = new Stack <AbstractContext <FakeAttribute> >();
            var mockContext  = new Mock <FakeContext>(attr, contextStack);

#pragma warning disable CC0022 // Should dispose object
            var disposableAnalyser = new DisposableDecorator(mockContext.Object);
#pragma warning restore CC0022 // Should dispose object
            GC.Collect();
            mockContext.Verify(it => it.Dispose(), Times.Never());
        }
        private static CommonAttribute CreateCommonAttribute(FakeAttribute fakeAttribute)
        {
            if (fakeAttribute == null)
            {
                return(null);
            }

            var monoCecilAttribute = new Mock <MonoCecilAttribute>(null);

            monoCecilAttribute.Setup(attribute => attribute.Name).Returns(() => fakeAttribute.Name);
            monoCecilAttribute.Setup(attribute => attribute.FullName).Returns(() => CreateFullName(fakeAttribute.Name));
            monoCecilAttribute.Setup(attribute => attribute.AttributeType).Returns(() => CreateMonoCecilTypeReference(new FakeType(fakeAttribute.AttributeType)));

            var reflectionAttribute = new ReflectionAttribute(fakeAttribute.AttributeInstance);

            return(new Mock <CommonAttribute>(monoCecilAttribute.Object, reflectionAttribute).Object);
        }
예제 #4
0
        private static ICommonAttribute CreateCommonAttribute(FakeAttribute fakeAttribute)
        {
            var monoCecilAttribute = CreateMockFor <CustomAttribute>();
            var typeReference      = CreateTypeReference(new FakeType(fakeAttribute.AttributeType));

            monoCecilAttribute.Setup(attribute => attribute.AttributeType).Returns(() => typeReference);

            var commonAttribute = CreateMockFor <ICommonAttribute>();

            commonAttribute.Setup(attribute => attribute.Name).Returns(() => typeReference.Name);
            commonAttribute.Setup(attribute => attribute.FullName).Returns(() => typeReference.FullName);
            commonAttribute.Setup(attribute => attribute.MonoCecil).Returns(() => monoCecilAttribute.Object);
            commonAttribute.Setup(attribute => attribute.Reflection).Returns(() => fakeAttribute.AttributeInstance);
            commonAttribute.Setup(attribute => attribute.Type).Returns(() => fakeAttribute.AttributeType);
            commonAttribute.Setup(attribute => attribute.Load(It.IsAny <int>())).Returns(() => commonAttribute.Object);

            return(commonAttribute.Object);
        }
예제 #5
0
        private T FillProperties <T>(T instance)
        {
            PropertyInfo[] props = instance.GetType().GetProperties();

            foreach (PropertyInfo prop in props)
            {
                Attribute[]   attributes    = Attribute.GetCustomAttributes(prop);
                FakeAttribute fakeAttribute = (FakeAttribute)attributes.Where(
                    x => x.GetType().Equals(typeof(FakeAttribute)) ||
                    x.GetType().Equals(typeof(CustomFakeAttribute))
                    ).FirstOrDefault();

                if (fakeAttribute != null)
                {
                    AddFakeValue(instance, fakeAttribute, prop, fakeAttribute.Minimum, fakeAttribute.Maximum);
                }
            }
            return(instance);
        }
예제 #6
0
 public FakeCommonTypeBuilder AddAttribute(FakeAttribute typeFakeAttribute)
 {
     attributes.Add(typeFakeAttribute);
     return(this);
 }
예제 #7
0
        public void GetTraitOptions_ViaAttributeUsage_Cached()
        {
            var source = new FakeAttribute();

            Assert.AreSame(source.GetTraitOptions(), source.GetTraitOptions());
        }