public void Initialization_Defaults()
        {
            UsesAttribute attribute = new UsesAttribute(typeof(string));

            Assert.That(attribute.AdditionalDependencies, Is.Empty);
            Assert.That(attribute.SuppressedMixins, Is.Empty);
            Assert.That(attribute.MixinType, Is.EqualTo(typeof(string)));
            Assert.That(attribute.IntroducedMemberVisibility, Is.EqualTo(MemberVisibility.Private));
        }
        public void Apply_InvalidOperation()
        {
            UsesAttribute attribute = new UsesAttribute(typeof(string));

            _configurationBuilderMock
            .Expect(mock => mock.AddMixinToClass(MixinKind.Used, null, null, MemberVisibility.Private, null, null, null))
            .IgnoreArguments()
            .Throw(new InvalidOperationException("Text"));

            _mockRepository.ReplayAll();
            attribute.Apply(_configurationBuilderMock, _userType);
        }
        public void Apply()
        {
            UsesAttribute attribute = new UsesAttribute(typeof(string));

            _configurationBuilderMock
            .Expect(
                mock => mock.AddMixinToClass(
                    MixinKind.Used,
                    _userType,
                    typeof(string),
                    MemberVisibility.Private,
                    attribute.AdditionalDependencies,
                    attribute.SuppressedMixins,
                    CreateExpectedOrigin(attribute)))
            .Return(null);

            _mockRepository.ReplayAll();
            attribute.Apply(_configurationBuilderMock, _userType);
            _mockRepository.VerifyAll();
        }
        public void IgnoresDuplicates()
        {
            var attribute = new UsesAttribute(typeof(string));

            Assert.That(attribute.IgnoresDuplicates, Is.False);
        }
 private MixinContextOrigin CreateExpectedOrigin(UsesAttribute attribute, Type userType = null)
 {
     return(MixinContextOrigin.CreateForCustomAttribute(attribute, userType ?? _userType));
 }