public async Task DoesNotRunPoliciesForNewlyCreatedBranch()
        {
            //arrange
            var fakePolicy = new FakePolicy(Mock.Of <IPullRequestMonitor>());
            var policies   = new[] { fakePolicy };
            var subject    = new MergePolicyRunner(policies, Mock.Of <ILogger <MergePolicyRunner> >());
            var payload    = new GitPushEventPayload
            {
                Resource = new GitPushEventResource
                {
                    RefUpdates = new List <GitPushEventRefUpdate>
                    {
                        new GitPushEventRefUpdate
                        {
                            Name        = "refs/heads/master",
                            OldObjectId = "0000000000000000000000000",
                            NewObjectId = "1231231231231231231231231"
                        }
                    },
                    Repository = new GitPushEventRepository
                    {
                        Name = "RepoName"
                    }
                }
            };

            //act
            await subject.RunAsync(Mock.Of <IAzureDevOpsClient>(), payload);

            //assert
            Assert.False(fakePolicy.WasCalled);
        }
Example #2
0
 public override object BuildUp(IBuilderContext context,
                                object buildKey,
                                object existing)
 {
     Policy = context.Policies.Get <FakePolicy>(typeof(object));
     return(base.BuildUp(context, buildKey, existing));
 }
Example #3
0
        public void CanClearPolicy()
        {
            PolicyList list   = new PolicyList();
            FakePolicy policy = new FakePolicy();

            list.Set(typeof(string), string.Empty, typeof(IBuilderPolicy), policy);
            list.Clear(typeof(string), string.Empty, typeof(IBuilderPolicy));

            Assert.IsNull(list.GetOrDefault(typeof(IBuilderPolicy), typeof(string), out _));
        }
Example #4
0
        public void CanClearPolicy()
        {
            PolicyList list   = new PolicyList();
            FakePolicy policy = new FakePolicy();

            list.Set <IBuilderPolicy>(policy, typeof(string));
            list.Clear <IBuilderPolicy>(typeof(string));

            Assert.IsNull(list.Get <IBuilderPolicy>(typeof(string)));
        }
Example #5
0
        public void DefaultPolicyUsedWhenSpecificPolicyIsntAvailable()
        {
            PolicyList list          = new PolicyList();
            FakePolicy defaultPolicy = new FakePolicy();

            list.Set(null, null, typeof(IBuilderPolicy), defaultPolicy);

            IBuilderPolicy result = list.GetOrDefault(typeof(IBuilderPolicy), typeof(object), out _);

            Assert.AreSame(defaultPolicy, result);
        }
Example #6
0
        public void CanRegisterGenericPolicyAndRetrieveWithSpecificGenericInstance()
        {
            PolicyList list   = new PolicyList();
            FakePolicy policy = new FakePolicy();

            list.Set(typeof(IDummy <>), string.Empty, typeof(FakePolicy), policy);

            var result = list.GetOrDefault(typeof(FakePolicy), typeof(IDummy <int>), out _);

            Assert.AreSame(policy, result);
        }
Example #7
0
        public void PolicyRegisteredForTypeIsUsedIfKeyIsNotFound()
        {
            PolicyList list          = new PolicyList();
            FakePolicy policyForType = new FakePolicy();

            list.Set <IBuilderPolicy>(policyForType, typeof(object));

            IBuilderPolicy result = list.Get <IBuilderPolicy>(new NamedTypeBuildKey <object>("name"));

            Assert.Same(policyForType, result);
        }
Example #8
0
        public void PolicyRegisteredForOpenGenericTypeUsedIfKeyIsNotFound()
        {
            PolicyList list          = new PolicyList();
            FakePolicy policyForType = new FakePolicy();

            list.Set <IBuilderPolicy>(policyForType, typeof(IDummy <>));

            IBuilderPolicy result = list.Get <IBuilderPolicy>(new NamedTypeBuildKey <IDummy <object> >("name"));

            Assert.AreSame(policyForType, result);
        }
Example #9
0
        public void CanAddPolicyToBagAndRetrieveIt()
        {
            PolicyList list   = new PolicyList();
            FakePolicy policy = new FakePolicy();

            list.Set <IBuilderPolicy>(policy, typeof(object));

            IBuilderPolicy result = list.Get <IBuilderPolicy>(typeof(object));

            Assert.AreSame(policy, result);
        }
Example #10
0
        public void CanRegisterGenericPolicyAndRetrieveWithSpecificGenericInstance()
        {
            PolicyList list   = new PolicyList();
            FakePolicy policy = new FakePolicy();

            list.Set(policy, typeof(IDummy <>));

            FakePolicy result = list.Get <FakePolicy>(typeof(IDummy <int>));

            Assert.AreSame(policy, result);
        }
Example #11
0
        public void DefaultPolicyUsedWhenSpecificPolicyIsntAvailable()
        {
            PolicyList list          = new PolicyList();
            FakePolicy defaultPolicy = new FakePolicy();

            list.SetDefault <IBuilderPolicy>(defaultPolicy);

            IBuilderPolicy result = list.Get <IBuilderPolicy>(typeof(object));

            Assert.AreSame(defaultPolicy, result);
        }
Example #12
0
        public void CanAddPolicyToBagAndRetrieveIt()
        {
            PolicyList list   = new PolicyList();
            FakePolicy policy = new FakePolicy();

            list.Set(typeof(object), string.Empty, typeof(IBuilderPolicy), policy);

            IBuilderPolicy result = list.GetOrDefault(typeof(IBuilderPolicy), typeof(object), out _);

            Assert.AreSame(policy, result);
        }
Example #13
0
        public void PolicyRegisteredForTypeIsUsedIfKeyIsNotFound()
        {
            PolicyList list          = new PolicyList();
            FakePolicy policyForType = new FakePolicy();

            list.Set(typeof(object), string.Empty, typeof(IBuilderPolicy), policyForType);

            IBuilderPolicy result = list.GetOrDefault(typeof(IBuilderPolicy), new NamedTypeBuildKey <object>("name"), out _);

            Assert.AreSame(policyForType, result);
        }
Example #14
0
        public void WillAskInnerPolicyListWhenOuterHasNoAnswer()
        {
            PolicyList innerList = new PolicyList();
            PolicyList outerList = new PolicyList(innerList);
            FakePolicy policy    = new FakePolicy();

            innerList.Set(policy, typeof(object));

            FakePolicy result = outerList.Get <FakePolicy>(typeof(object));

            Assert.AreSame(policy, result);
        }
Example #15
0
        public void CanGetLocalPolicy()
        {
            PolicyList innerList   = new PolicyList();
            PolicyList outerList   = new PolicyList(innerList);
            FakePolicy innerPolicy = new FakePolicy();

            innerList.Set(innerPolicy, typeof(object));

            FakePolicy result = outerList.Get <FakePolicy>(typeof(object), true);

            Assert.Null(result);
        }
Example #16
0
        public void CanAddMultiplePoliciesToBagAndRetrieveThem()
        {
            PolicyList list    = new PolicyList();
            FakePolicy policy1 = new FakePolicy();
            FakePolicy policy2 = new FakePolicy();

            list.Set <IBuilderPolicy>(policy1, "1");
            list.Set <IBuilderPolicy>(policy2, "2");

            Assert.AreSame(policy1, list.Get <IBuilderPolicy>("1"));
            Assert.AreSame(policy2, list.Get <IBuilderPolicy>("2"));
        }
Example #17
0
        public void WillUseInnerDefaultPolicyWhenOuterHasNoAnswer()
        {
            PolicyList innerList = new PolicyList();
            PolicyList outerList = new PolicyList(innerList);
            FakePolicy policy    = new FakePolicy();

            innerList.SetDefault(policy);

            FakePolicy result = outerList.Get <FakePolicy>(typeof(object));

            Assert.Same(policy, result);
        }
Example #18
0
        public void SetOverwritesExistingPolicy()
        {
            PolicyList list    = new PolicyList();
            FakePolicy policy1 = new FakePolicy();
            FakePolicy policy2 = new FakePolicy();

            list.Set(typeof(string), string.Empty, typeof(IBuilderPolicy), policy1);
            list.Set(typeof(string), string.Empty, typeof(IBuilderPolicy), policy2);

            IBuilderPolicy result = list.GetOrDefault(typeof(IBuilderPolicy), typeof(string), out _);

            Assert.AreSame(policy2, result);
        }
Example #19
0
        public void SpecificGenericPolicyComesBeforeGenericPolicy()
        {
            PolicyList list           = new PolicyList();
            FakePolicy genericPolicy  = new FakePolicy();
            FakePolicy specificPolicy = new FakePolicy();

            list.Set(typeof(IDummy <>), string.Empty, typeof(FakePolicy), genericPolicy);
            list.Set(typeof(IDummy <int>), string.Empty, typeof(FakePolicy), specificPolicy);

            var result = list.GetOrDefault(typeof(FakePolicy), typeof(IDummy <int>), out _);

            Assert.AreSame(specificPolicy, result);
        }
Example #20
0
        public void SpecificPolicyOverridesDefaultPolicy()
        {
            PolicyList list           = new PolicyList();
            FakePolicy defaultPolicy  = new FakePolicy();
            FakePolicy specificPolicy = new FakePolicy();

            list.Set(typeof(object), string.Empty, typeof(IBuilderPolicy), specificPolicy);
            list.Set(null, null, typeof(IBuilderPolicy), defaultPolicy);

            IBuilderPolicy result = list.GetOrDefault(typeof(IBuilderPolicy), typeof(object), out _);

            Assert.AreSame(specificPolicy, result);
        }
Example #21
0
        public void CanClearDefaultPolicy()
        {
            PolicyList list          = new PolicyList();
            FakePolicy defaultPolicy = new FakePolicy();

            list.SetDefault <IBuilderPolicy>(defaultPolicy);

            list.ClearDefault <IBuilderPolicy>();

            IBuilderPolicy result = list.Get <IBuilderPolicy>(typeof(object));

            Assert.IsNull(result);
        }
Example #22
0
        public void SpecificPolicyOverridesDefaultPolicy()
        {
            PolicyList list           = new PolicyList();
            FakePolicy defaultPolicy  = new FakePolicy();
            FakePolicy specificPolicy = new FakePolicy();

            list.Set <IBuilderPolicy>(specificPolicy, typeof(object));
            list.SetDefault <IBuilderPolicy>(defaultPolicy);

            IBuilderPolicy result = list.Get <IBuilderPolicy>(typeof(object));

            Assert.AreSame(specificPolicy, result);
        }
Example #23
0
        public void SpecificGenericPolicyComesBeforeGenericPolicy()
        {
            PolicyList list           = new PolicyList();
            FakePolicy genericPolicy  = new FakePolicy();
            FakePolicy specificPolicy = new FakePolicy();

            list.Set(genericPolicy, typeof(IDummy <>));
            list.Set(specificPolicy, typeof(IDummy <int>));

            FakePolicy result = list.Get <FakePolicy>(typeof(IDummy <int>));

            Assert.AreSame(specificPolicy, result);
        }
Example #24
0
        public void SetOverwritesExistingPolicy()
        {
            PolicyList list    = new PolicyList();
            FakePolicy policy1 = new FakePolicy();
            FakePolicy policy2 = new FakePolicy();

            list.Set <IBuilderPolicy>(policy1, typeof(string));
            list.Set <IBuilderPolicy>(policy2, typeof(string));

            IBuilderPolicy result = list.Get <IBuilderPolicy>(typeof(string));

            Assert.AreSame(policy2, result);
        }
Example #25
0
        public void PolicyForClosedGenericTypeOverridesPolicyForOpenType()
        {
            PolicyList list             = new PolicyList();
            FakePolicy openTypePolicy   = new FakePolicy();
            FakePolicy closedTypePolicy = new FakePolicy();

            list.Set <IBuilderPolicy>(openTypePolicy, typeof(IDummy <>));
            list.Set <IBuilderPolicy>(closedTypePolicy, typeof(IDummy <object>));

            IBuilderPolicy result = list.Get <IBuilderPolicy>(new NamedTypeBuildKey <IDummy <object> >("name"));

            Assert.AreSame(closedTypePolicy, result);
        }
Example #26
0
        public void CanClearDefaultPolicy()
        {
            PolicyList list          = new PolicyList();
            FakePolicy defaultPolicy = new FakePolicy();

            list.Set(null, null, typeof(IBuilderPolicy), defaultPolicy);

            list.Clear(null, null, typeof(IBuilderPolicy));

            IBuilderPolicy result = list.GetOrDefault(typeof(IBuilderPolicy), typeof(object), out _);

            Assert.IsNull(result);
        }
Example #27
0
        public void PolicyForClosedGenericTypeOverridesPolicyForOpenType()
        {
            PolicyList list             = new PolicyList();
            FakePolicy openTypePolicy   = new FakePolicy();
            FakePolicy closedTypePolicy = new FakePolicy();

            list.Set(typeof(IDummy <>), string.Empty, typeof(IBuilderPolicy), openTypePolicy);
            list.Set(typeof(IDummy <object>), string.Empty, typeof(IBuilderPolicy), closedTypePolicy);

            IBuilderPolicy result = list.GetOrDefault(typeof(IBuilderPolicy), new NamedTypeBuildKey <IDummy <object> >("name"), out _);

            Assert.AreSame(closedTypePolicy, result);
        }
Example #28
0
        public void SpecificInnerPolicyOverridesDefaultOuterPolicy()
        {
            PolicyList innerList   = new PolicyList();
            PolicyList outerList   = new PolicyList(innerList);
            FakePolicy innerPolicy = new FakePolicy();
            FakePolicy outerPolicy = new FakePolicy();

            innerList.Set(innerPolicy, typeof(object));
            outerList.SetDefault(outerPolicy);

            FakePolicy result = outerList.Get <FakePolicy>(typeof(object));

            Assert.Same(innerPolicy, result);
        }
Example #29
0
        public void WillAskInnerPolicyListWhenOuterHasNoAnswer()
        {
            PolicyList innerList = new PolicyList();
            PolicyList outerList = new PolicyList(innerList);
            FakePolicy policy    = new FakePolicy();

            innerList.Set(typeof(object), string.Empty, typeof(FakePolicy), policy);

            IPolicyList containingPolicies;
            var         result = outerList.GetOrDefault(typeof(FakePolicy), typeof(object), out containingPolicies);

            Assert.AreSame(policy, result);
            Assert.AreSame(innerList, containingPolicies);
        }
Example #30
0
        public void WillUseInnerDefaultPolicyWhenOuterHasNoAnswer()
        {
            PolicyList innerList = new PolicyList();
            PolicyList outerList = new PolicyList(innerList);
            FakePolicy policy    = new FakePolicy();

            innerList.Set(null, null, typeof(FakePolicy), policy);

            IPolicyList containingPolicyList;
            var         result = outerList.GetOrDefault(typeof(FakePolicy), typeof(object), out containingPolicyList);

            Assert.AreSame(policy, result);
            Assert.AreSame(innerList, containingPolicyList);
        }