示例#1
0
        public void Matches_GivenDiscoverCommand_EngineCalledOnceWithParametersComingFromDiscoveryCommand()
        {
            var disco = new DiscoveryRequestFactory().Build(
                "ConnectionString",
                "member-caption",
                "perspective",
                "dimension",
                "hierarchy",
                null);

            var memberStub = new Mock <NBi.Core.Analysis.Member.Member>();
            var member1    = memberStub.Object;
            var member2    = memberStub.Object;
            var members    = new MemberResult();

            members.Add(member1);
            members.Add(member2);

            var meMock = new Mock <MembersAdomdEngine>();

            meMock.Setup(engine => engine.GetMembers(disco))
            .Returns(members);
            var me = meMock.Object;

            var orderedConstraint = new OrderedConstraint()
            {
                MembersEngine = me
            };

            //Method under test
            orderedConstraint.Matches(disco);

            //Test conclusion
            meMock.Verify(engine => engine.GetMembers(disco), Times.Once());
        }
示例#2
0
        public void Matches_GivenMemberCommand_EngineCalledOnceWithParametersComingFromMemberCommand()
        {
            var exp = "Expected member";
            var cmd = new DiscoveryRequestFactory().Build(
                "ConnectionString",
                "member-caption",
                "perspective",
                "dimension",
                null,
                null);

            var memberStub = new Mock<NBi.Core.Analysis.Member.Member>();
            var member1 = memberStub.Object;
            var member2 = memberStub.Object;
            var members = new MemberResult();
            members.Add(member1);
            members.Add(member2);

            var meMock = new Mock<MembersAdomdEngine>();
            meMock.Setup(engine => engine.GetMembers(cmd))
                .Returns(members);
            var me = meMock.Object;

            var containsConstraint = new ContainConstraint(exp) { MembersEngine = me };

            //Method under test
            containsConstraint.Matches(cmd);

            //Test conclusion
            meMock.Verify(engine => engine.GetMembers(cmd), Times.Once());
        }
示例#3
0
        public void WriteTo_FailingAssertionForSpecific_TextContainsFewKeyInfo()
        {
            var cmd = new DiscoveryRequestFactory().Build(
                "connectionString",
                "member-caption",
                "perspective-name",
                "dimension-caption",
                "hierarchy-caption",
                null);

            var member1Stub = new Mock <NBi.Core.Analysis.Member.Member>();
            var member1     = member1Stub.Object;

            member1.Caption = "A";
            var member2Stub = new Mock <NBi.Core.Analysis.Member.Member>();
            var member2     = member2Stub.Object;

            member2.Caption = "B";
            var members = new MemberResult();

            members.Add(member1);
            members.Add(member2);

            var meStub = new Mock <MembersAdomdEngine>();

            meStub.Setup(engine => engine.GetMembers(cmd))
            .Returns(members);
            var me = meStub.Object;

            var orderedConstraint = new OrderedConstraint()
            {
                MembersEngine = me
            };

            orderedConstraint.Specific(new List <object>()
            {
                "B", "A"
            });

            //var assertionText = orderedConstraint.CreatePredicate();
            //Method under test
            string assertionText = null;

            try
            {
                Assert.That(cmd, orderedConstraint);
            }
            catch (AssertionException ex)
            {
                assertionText = ex.Message;
            }
            //Test conclusion
            Assert.That(assertionText, Is.StringContaining("perspective-name").And
                        .StringContaining("dimension-caption").And
                        .StringContaining("hierarchy-caption").And
                        .StringContaining("member-caption").And
                        .StringContaining("children").And
                        .StringContaining("specifically"));
        }
示例#4
0
        public void WriteTo_FailingAssertionForBetween_TextContainsFewKeyInfo()
        {
            var cmd = new DiscoveryRequestFactory().Build(
                "connectionString",
                "member-caption",
                "perspective-name",
                "dimension-caption",
                "hierarchy-caption",
                null);

            var memberStub = new Mock <NBi.Core.Analysis.Member.Member>();
            var member1    = memberStub.Object;
            var member2    = memberStub.Object;
            var members    = new MemberResult();

            members.Add(member1);
            members.Add(member2);

            var meStub = new Mock <MembersAdomdEngine>();

            meStub.Setup(engine => engine.GetMembers(cmd))
            .Returns(members);
            var me = meStub.Object;

            var countConstraint = new CountConstraint()
            {
                MembersEngine = me
            };

            countConstraint = countConstraint.MoreThan(8);
            countConstraint = countConstraint.LessThan(12);

            //Method under test
            string assertionText = null;

            try
            {
                Assert.That(cmd, countConstraint);
            }
            catch (AssertionException ex)
            {
                assertionText = ex.Message;
            }

            //Test conclusion
            Assert.That(assertionText, Is.StringContaining("perspective-name").And
                        .StringContaining("dimension-caption").And
                        .StringContaining("hierarchy-caption").And
                        .StringContaining("member-caption").And
                        .StringContaining("children").And
                        .StringContaining("between").And
                        .StringContaining("8").And
                        .StringContaining("12"));
        }
示例#5
0
        public void WriteTo_FailingAssertionForMember_TextContainsFewKeyInfo()
        {
            var exp = "Expected member";
            var cmd = new DiscoveryRequestFactory().Build(
                "connectionString",
                string.Empty,
                "perspective-name",
                "dimension-caption",
                "hierarchy-caption",
                "level-caption");

            var memberStub = new Mock <NBi.Core.Analysis.Member.Member>();
            var member1    = memberStub.Object;
            var member2    = memberStub.Object;
            var members    = new MemberResult();

            members.Add(member1);
            members.Add(member2);

            var meStub = new Mock <MembersAdomdEngine>();

            meStub.Setup(engine => engine.GetMembers(cmd))
            .Returns(members);
            var me = meStub.Object;

            var containsConstraint = new ContainConstraint(exp)
            {
                MembersEngine = me
            };

            //Method under test
            string assertionText = null;

            try
            {
                Assert.That(cmd, containsConstraint);
            }
            catch (AssertionException ex)
            {
                assertionText = ex.Message;
            }

            //Test conclusion
            Assert.That(assertionText, Is.StringContaining("perspective-name").And
                        .StringContaining("dimension-caption").And
                        .StringContaining("hierarchy-caption").And
                        .StringContaining("level-caption").And
                        .StringContaining("member").And
                        .StringContaining("Expected member"));
        }
示例#6
0
        public void Matches_OneCaptionNotContainedInMembers_Failure()
        {
            //Buiding object used during test
            var members = new MemberResult();
            members.Add(new NBi.Core.Analysis.Member.Member("[Hierarchy].[First member]", "First member", 1, 0));
            members.Add(new NBi.Core.Analysis.Member.Member("[Hierarchy].[Second member]", "Second member", 2, 0));

            var containConstraint = new NBi.NUnit.Member.ContainConstraint("Third member");

            //Call the method to test
            var res = containConstraint.Matches(members);

            //Test conclusion
            Assert.That(res, Is.False);
        }
        public void Matches_ExactlyWronglySpecified_Validated()
        {
            var members = new MemberResult();
            members.Add("First member");
            members.Add("Second member");

            var countConstraint = new CountConstraint();
            countConstraint.Exactly(1);

            //Method under test
            var res = countConstraint.Matches(members);

            //Test conclusion
            Assert.That(res, Is.False);
        }
示例#8
0
        public void Matches_OneCaptionContainedInMembers_Validated()
        {
            //Buiding object used during test
            var members = new MemberResult();
            members.Add(new NBi.Core.Analysis.Member.Member("[Hierarchy].[First member]", "First member", 1, 0));
            members.Add(new NBi.Core.Analysis.Member.Member("[Hierarchy].[Second member]", "Second member", 2, 0));

            var equivalentConstraint = new NBi.NUnit.Member.EquivalentToConstraint(new List<string>() { "First member", "Second member" });

            //Call the method to test
            var res = equivalentConstraint.Matches(members);

            //Test conclusion
            Assert.That(res, Is.True);
        }
示例#9
0
        public void Matches_TwoCaptionsBothContainedInMembers_Validated()
        {
            //Buiding object used during test
            var members = new MemberResult();

            members.Add(new NBi.Core.Analysis.Member.Member("[Hierarchy].[First member]", "First member", 1, 0));
            members.Add(new NBi.Core.Analysis.Member.Member("[Hierarchy].[Second member]", "Second member", 2, 0));

            var containConstraint = new NBi.NUnit.Member.ContainConstraint(new string[] { "First member", "Second member" });

            //Call the method to test
            var res = containConstraint.Matches(members);

            //Test conclusion
            Assert.That(res, Is.True);
        }
示例#10
0
        public void Matches_OneCaptionNotContainedInMembers_Failure()
        {
            //Buiding object used during test
            var members = new MemberResult();

            members.Add(new NBi.Core.Analysis.Member.Member("[Hierarchy].[First member]", "First member", 1, 0));
            members.Add(new NBi.Core.Analysis.Member.Member("[Hierarchy].[Second member]", "Second member", 2, 0));

            var containConstraint = new NBi.NUnit.Member.ContainConstraint("Third member");

            //Call the method to test
            var res = containConstraint.Matches(members);

            //Test conclusion
            Assert.That(res, Is.False);
        }
        public void Matches_AlphabeticallyNotCorrectlyOrdered_Failed()
        {
            var members = new MemberResult();
            members.Add("A member");
            members.Add("C member");
            members.Add("B member");

            var orderedConstraint = new OrderedConstraint();
            orderedConstraint = orderedConstraint.Alphabetical;

            //Method under test
            var res = orderedConstraint.Matches(members);

            //Test conclusion
            Assert.That(res, Is.False);
        }
示例#12
0
        public void WriteActualValueTo_OneCaptionNotContainedInMoreThan15Members_DisplayOnlyFirstMembers()
        {
            //Mock the writer
            var mockWriter = new Mock <global::NUnit.Framework.Constraints.MessageWriter>();
            var writer     = mockWriter.Object;

            //Buiding object used during test
            var members = new MemberResult();

            for (int i = 0; i < 25; i++)
            {
                members.Add(new NBi.Core.Analysis.Member.Member(string.Format("[Hierarchy].[member {0}]", i), string.Format("member {0}", i), i, 0));
            }

            var containConstraint = new NBi.NUnit.Member.ContainConstraint("Searched member");

            //Call the method to test
            containConstraint.Matches(members);
            containConstraint.WriteActualValueTo(writer);

            //Test conclusion
            var shortList = members.Take(10);

            mockWriter.Verify(wr => wr.WriteActualValue(shortList));
            mockWriter.Verify(wr => wr.WriteActualValue(It.Is <string>(str => str.Contains("15") && str.Contains("other"))));
        }
示例#13
0
        public void Matches_LessThanAndMoreThanWronglySpecifiedForLessThan_Validated()
        {
            var members = new MemberResult();
            members.Add("First member");
            members.Add("Second member");

            var countConstraint = new CountConstraint();
            countConstraint.MoreThan(1);
            countConstraint.LessThan(2);

            //Method under test
            var res = countConstraint.Matches(members);

            //Test conclusion
            Assert.That(res, Is.False);
        }
示例#14
0
        public void Matches_RegexCorrectlySpecified_Validated()
        {
            var members = new MemberResult();

            members.Add("800-555-5555");
            members.Add("212-666-1234");

            var matchPatternConstraint = new MatchPatternConstraint();

            matchPatternConstraint = matchPatternConstraint.Regex(@"^[2-9]\d{2}-\d{3}-\d{4}$");

            //Method under test
            var res = matchPatternConstraint.Matches(members);

            //Test conclusion
            Assert.That(res, Is.True);
        }
示例#15
0
        public void Matches_RegexWronglySpecified_Validated()
        {
            var members = new MemberResult();

            members.Add("000-000-0000");
            members.Add("2126661234");

            var matchPatternConstraint = new MatchPatternConstraint();

            matchPatternConstraint = matchPatternConstraint.Regex(@"^[2-9]\d{2}-\d{3}-\d{4}$");

            //Method under test
            var res = matchPatternConstraint.Matches(members);

            //Test conclusion
            Assert.That(res, Is.False);
        }
示例#16
0
        public void Matches_LessThanCorrectlySpecified_Validated()
        {
            var members = new MemberResult();

            members.Add("First member");
            members.Add("Second member");

            var countConstraint = new CountConstraint();

            countConstraint.LessThan(3);

            //Method under test
            var res = countConstraint.Matches(members);

            //Test conclusion
            Assert.That(res, Is.True);
        }
示例#17
0
        public void Matches_MoreThanWronglySpecified_Validated()
        {
            var members = new MemberResult();

            members.Add("First member");
            members.Add("Second member");

            var countConstraint = new CountConstraint();

            countConstraint.MoreThan(2);

            //Method under test
            var res = countConstraint.Matches(members);

            //Test conclusion
            Assert.That(res, Is.False);
        }
        public void Matches_ChronologicalNotCorrectlyOrdered_Failed()
        {
            System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("fr-be");
            var members = new MemberResult();
            members.Add("20/10/2010");
            members.Add("3/10/2011");
            members.Add("5/2/2011");

            var orderedConstraint = new OrderedConstraint();
            orderedConstraint = orderedConstraint.Chronological;

            //Method under test
            var res = orderedConstraint.Matches(members);

            //Test conclusion
            Assert.That(res, Is.False);
        }
示例#19
0
        public void Matches_NumericalNotCorrectlyOrdered_Failed()
        {
            var members = new MemberResult();

            members.Add("1");
            members.Add("100");
            members.Add("5");

            var orderedConstraint = new OrderedConstraint();

            orderedConstraint = orderedConstraint.Numerical;

            //Method under test
            var res = orderedConstraint.Matches(members);

            //Test conclusion
            Assert.That(res, Is.False);
        }
示例#20
0
        public void Matches_AlphabeticallyNotCorrectlyOrdered_Failed()
        {
            var members = new MemberResult();

            members.Add("A member");
            members.Add("C member");
            members.Add("B member");

            var orderedConstraint = new OrderedConstraint();

            orderedConstraint = orderedConstraint.Alphabetical;

            //Method under test
            var res = orderedConstraint.Matches(members);

            //Test conclusion
            Assert.That(res, Is.False);
        }
示例#21
0
        public void Matches_ReverseCorrectlyOrdered_Validated()
        {
            var members = new MemberResult();

            members.Add("C member");
            members.Add("B member");
            members.Add("A member");

            var orderedConstraint = new OrderedConstraint();

            orderedConstraint = orderedConstraint.Descending;

            //Method under test
            var res = orderedConstraint.Matches(members);

            //Test conclusion
            Assert.That(res, Is.True);
        }
示例#22
0
        public void Matches_ChronologicalNotCorrectlyOrdered_Failed()
        {
            System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("fr-be");
            var members = new MemberResult();

            members.Add("20/10/2010");
            members.Add("3/10/2011");
            members.Add("5/2/2011");

            var orderedConstraint = new OrderedConstraint();

            orderedConstraint = orderedConstraint.Chronological;

            //Method under test
            var res = orderedConstraint.Matches(members);

            //Test conclusion
            Assert.That(res, Is.False);
        }
示例#23
0
        public void WriteTo_FailingAssertionForListOfLevels_TextContainsFewKeyInfo()
        {
            var exp = new string[] { "Expected member 1", "Expected member 2" };
            var cmd = new DiscoveryRequestFactory().Build(
                        "connectionString",
                        "member-caption",
                        "perspective-name",
                        "dimension-caption", "hierarchy-caption", null);

            var memberStub = new Mock<NBi.Core.Analysis.Member.Member>();
            var member1 = memberStub.Object;
            var member2 = memberStub.Object;
            var members = new MemberResult();
            members.Add(member1);
            members.Add(member2);

            var meMock = new Mock<MembersAdomdEngine>();
            meMock.Setup(engine => engine.GetMembers(cmd))
                .Returns(members);
            var me = meMock.Object;

            var equivalentConstraint = new EquivalentToConstraint(exp) { MembersEngine = me };

            //Method under test
            string assertionText = null;
            try
            {
                Assert.That(cmd, equivalentConstraint);
            }
            catch (AssertionException ex)
            {
                assertionText = ex.Message;
            }

            //Test conclusion
            Assert.That(assertionText, Is.StringContaining("perspective-name").And
                                            .StringContaining("dimension-caption").And
                                            .StringContaining("hierarchy-caption").And
                                            .StringContaining("equivalent to").And
                                            .StringContaining("Expected member 1").And
                                            .StringContaining("Expected member 2"));
        }
示例#24
0
        public void WriteActualValueTo_OneCaptionNotContainedInLessThan15Members_DisplayAllMembers()
        {
            //Mock the writer
            var mockWriter = new Mock<global::NUnit.Framework.Constraints.MessageWriter>();
            var writer = mockWriter.Object;

            //Buiding object used during test
            var members = new MemberResult();
            members.Add(new NBi.Core.Analysis.Member.Member("[Hierarchy].[First member]", "First member", 1, 0));
            members.Add(new NBi.Core.Analysis.Member.Member("[Hierarchy].[Second member]", "Second member", 2, 0));

            var subsetOfConstraint = new NBi.NUnit.Member.SubsetOfConstraint(new List<string>() { "First member" });

            //Call the method to test
            subsetOfConstraint.Matches(members);
            subsetOfConstraint.WriteActualValueTo(writer);

            //Test conclusion
            mockWriter.Verify(wr => wr.WriteActualValue(members));
        }
示例#25
0
        public void WriteActualValueTo_OneCaptionNotContainedInLessThan15Members_DisplayAllMembers()
        {
            //Mock the writer
            var mockWriter = new Mock <global::NUnit.Framework.Constraints.MessageWriter>();
            var writer     = mockWriter.Object;

            //Buiding object used during test
            var members = new MemberResult();

            members.Add(new NBi.Core.Analysis.Member.Member("[Hierarchy].[First member]", "First member", 1, 0));
            members.Add(new NBi.Core.Analysis.Member.Member("[Hierarchy].[Second member]", "Second member", 2, 0));

            var containConstraint = new NBi.NUnit.Member.ContainConstraint("Third member");

            //Call the method to test
            containConstraint.Matches(members);
            containConstraint.WriteActualValueTo(writer);

            //Test conclusion
            mockWriter.Verify(wr => wr.WriteActualValue(members));
        }
示例#26
0
        public void Matches_SpecificNotCorrectlyOrdered_Failed()
        {
            var members = new MemberResult();

            members.Add("Leopold");
            members.Add("Baudoin");
            members.Add("Albert");

            var ordspec = new List <object>();

            ordspec.Add("Leopold");
            ordspec.Add("Albert");
            ordspec.Add("Baudoin");

            var orderedConstraint = new OrderedConstraint();

            orderedConstraint = orderedConstraint.Specific(ordspec);

            //Method under test
            var res = orderedConstraint.Matches(members);

            //Test conclusion
            Assert.That(res, Is.False);
        }
示例#27
0
        public void Matches_OneCaptionContainedInMembersOneLess_Failure()
        {
            //Buiding object used during test
            var members = new MemberResult();

            members.Add(new NBi.Core.Analysis.Member.Member("[Hierarchy].[First member]", "First member", 1, 0));

            var equivalentConstraint = new NBi.NUnit.Member.EquivalentToConstraint(new List <string>()
            {
                "First member", "Second member"
            });

            //Call the method to test
            var res = equivalentConstraint.Matches(members);

            //Test conclusion
            Assert.That(res, Is.False);
        }
示例#28
0
        public void WriteActualValueTo_OneCaptionNotContainedInMoreThan15Members_DisplayOnlyFirstMembers()
        {
            //Mock the writer
            var mockWriter = new Mock<global::NUnit.Framework.Constraints.MessageWriter>();
            var writer = mockWriter.Object;

            //Buiding object used during test
            var members = new MemberResult();
            for (int i = 0; i < 25; i++)
                members.Add(new NBi.Core.Analysis.Member.Member(string.Format("[Hierarchy].[member {0}]", i), string.Format("member {0}", i), i, 0));

            var containConstraint = new NBi.NUnit.Member.SubsetOfConstraint(new List<string>() { "First member" });

            //Call the method to test
            containConstraint.Matches(members);
            containConstraint.WriteActualValueTo(writer);

            //Test conclusion
            var shortList = members.Take(10);
            mockWriter.Verify(wr => wr.WriteActualValue(shortList));
            mockWriter.Verify(wr => wr.WriteActualValue(It.Is<string>(str => str.Contains("15") && str.Contains("other"))));
        }
示例#29
0
        public void WriteTo_FailingAssertionForRegex_TextContainsFewKeyInfo()
        {
            var cmd = new DiscoveryRequestFactory().Build(
                "connectionString",
                "member-caption",
                "perspective-name",
                "dimension-caption",
                "hierarchy-caption",
                null);

            var member1 = new NBi.Core.Analysis.Member.Member()
            {
                Caption = "217-487-1125"
            };
            var member2 = new NBi.Core.Analysis.Member.Member()
            {
                Caption = "000-000-0000"
            };
            var member3 = new NBi.Core.Analysis.Member.Member()
            {
                Caption = "444-222-3333"
            };
            var member4 = new NBi.Core.Analysis.Member.Member()
            {
                Caption = "4442223333"
            };
            var members = new MemberResult();

            members.Add(member1);
            members.Add(member2);
            members.Add(member3);
            members.Add(member4);

            var meStub = new Mock <MembersAdomdEngine>();

            meStub.Setup(engine => engine.GetMembers(cmd))
            .Returns(members);
            var me = meStub.Object;

            var matchPatternConstraint = new MatchPatternConstraint()
            {
                MembersEngine = me
            };

            matchPatternConstraint = matchPatternConstraint.Regex(@"^[2-9]\d{2}-\d{3}-\d{4}$");

            //Method under test
            string assertionText = null;

            try
            {
                Assert.That(cmd, matchPatternConstraint);
            }
            catch (AssertionException ex)
            {
                assertionText = ex.Message;
            }

            //Test conclusion
            Assert.That(assertionText, Is.StringContaining("perspective-name").And
                        .StringContaining("dimension-caption").And
                        .StringContaining("hierarchy-caption").And
                        .StringContaining("member-caption").And
                        .StringContaining("children").And
                        .StringContaining("regex pattern").And
                        .StringContaining(@"^[2-9]\d{2}-\d{3}-\d{4}$").And
                        .StringContaining(@"But was:    2 elements").And
                        .StringContaining(@"000-000-0000").And
                        .Not.StringContaining(@"444-222-3333"));
        }
示例#30
0
        public void Matches_LessThanCorrectlySpecified_Validated()
        {
            var members = new MemberResult();
            members.Add("First member");
            members.Add("Second member");

            var countConstraint = new CountConstraint();
            countConstraint.LessThan(3);

            //Method under test
            var res = countConstraint.Matches(members);

            //Test conclusion
            Assert.That(res, Is.True);
        }
示例#31
0
        public void WriteTo_FailingAssertionForMoreThan_TextContainsFewKeyInfo()
        {
            var cmd = new DiscoveryRequestFactory().Build(
                "connectionString",
                "member-caption",
                "perspective-name",
                "dimension-caption",
                "hierarchy-caption",
                null);

            var memberStub = new Mock<NBi.Core.Analysis.Member.Member>();
            var member1 = memberStub.Object;
            var member2 = memberStub.Object;
            var members = new MemberResult();
            members.Add(member1);
            members.Add(member2);

            var meStub = new Mock<MembersAdomdEngine>();
            meStub.Setup(engine => engine.GetMembers(cmd))
                .Returns(members);
            var me = meStub.Object;

            var countConstraint = new CountConstraint() { MembersEngine = me };
            countConstraint.MoreThan(10);

            //Method under test
            string assertionText = null;
            try
            {
                Assert.That(cmd, countConstraint);
            }
            catch (AssertionException ex)
            {
                assertionText = ex.Message;
            }

            //Test conclusion
            Assert.That(assertionText, Is.StringContaining("perspective-name").And
                                            .StringContaining("dimension-caption").And
                                            .StringContaining("hierarchy-caption").And
                                            .StringContaining("member-caption").And
                                            .StringContaining("children").And
                                            .StringContaining("more than").And
                                            .StringContaining("10"));
        }
示例#32
0
        public virtual MemberResult List(IEnumerable<IFilter> filters)
        {
            var list = new MemberResult();

            Inform("Investigating members");

            using (var cmd = CreateCommand())
            {
                var path = BuildPath(filters);
                var perspective = GetPerspective(filters);
                var commandText = Build(perspective.Value, path, Function, MemberCaption, ExcludedMembers, ExcludedPatterns);
                cmd.CommandText = commandText;
                var cs = ExecuteCellSet(cmd);
                // Traverse the response (The response is on first line!!!)
                var i = 0;
                foreach (var position in cs.Axes[1].Positions)
                {
                    var member = position.Members[0];
                    var uniqueName = member.UniqueName;
                    var caption = member.Caption;
                    var ordinal = ++i;
                    var levelNumber = member.LevelDepth;

                    list.Add(new Member(uniqueName, caption, ordinal, levelNumber));
                }
            }

            Inform("Members investigated");

            return list;
        }
        public void WriteTo_FailingAssertionForSpecific_TextContainsFewKeyInfo()
        {
            var cmd = new DiscoveryRequestFactory().Build(
                "connectionString",
                "member-caption",
                "perspective-name",
                "dimension-caption",
                "hierarchy-caption",
                null);

            var member1Stub = new Mock<NBi.Core.Analysis.Member.Member>();
            var member1 = member1Stub.Object;
            member1.Caption="A";
            var member2Stub = new Mock<NBi.Core.Analysis.Member.Member>();
            var member2 = member2Stub.Object;
            member2.Caption="B";
            var members = new MemberResult();
            members.Add(member1);
            members.Add(member2);

            var meStub = new Mock<MembersAdomdEngine>();
            meStub.Setup(engine => engine.GetMembers(cmd))
                .Returns(members);
            var me = meStub.Object;

            var orderedConstraint = new OrderedConstraint() { MembersEngine = me };
            orderedConstraint.Specific(new List<object>() { "B", "A" });

            //var assertionText = orderedConstraint.CreatePredicate();
            //Method under test
            string assertionText = null;
            try
            {
                Assert.That(cmd, orderedConstraint);
            }
            catch (AssertionException ex)
            {
                assertionText = ex.Message;
            }
            //Test conclusion
            Assert.That(assertionText, Is.StringContaining("perspective-name").And
                                            .StringContaining("dimension-caption").And
                                            .StringContaining("hierarchy-caption").And
                                            .StringContaining("member-caption").And
                                            .StringContaining("children").And
                                            .StringContaining("specifically"));
        }
        public void Matches_SpecificNotCorrectlyOrdered_Failed()
        {
            var members = new MemberResult();
            members.Add("Leopold");
            members.Add("Baudoin");
            members.Add("Albert");

            var ordspec = new List<object>();
            ordspec.Add("Leopold");
            ordspec.Add("Albert");
            ordspec.Add("Baudoin");

            var orderedConstraint = new OrderedConstraint();
            orderedConstraint = orderedConstraint.Specific(ordspec);

            //Method under test
            var res = orderedConstraint.Matches(members);

            //Test conclusion
            Assert.That(res, Is.False);
        }
        public void Matches_ReverseCorrectlyOrdered_Validated()
        {
            var members = new MemberResult();
            members.Add("C member");
            members.Add("B member");
            members.Add("A member");

            var orderedConstraint = new OrderedConstraint();
            orderedConstraint = orderedConstraint.Descending;

            //Method under test
            var res = orderedConstraint.Matches(members);

            //Test conclusion
            Assert.That(res, Is.True);
        }
        public void Matches_NumericalNotCorrectlyOrdered_Failed()
        {
            var members = new MemberResult();
            members.Add("1");
            members.Add("100");
            members.Add("5");

            var orderedConstraint = new OrderedConstraint();
            orderedConstraint = orderedConstraint.Numerical;

            //Method under test
            var res = orderedConstraint.Matches(members);

            //Test conclusion
            Assert.That(res, Is.False);
        }