示例#1
0
        internal static StandardGlyphGroup GetGlyphGroup(MemberResult result)
        {
            switch (result.MemberType)
            {
            case JsMemberType.Function:
                return(StandardGlyphGroup.GlyphGroupMethod);

            case JsMemberType.Keyword:
                return(StandardGlyphGroup.GlyphKeyword);

            case JsMemberType.Module:
                return(StandardGlyphGroup.GlyphGroupModule);

            case JsMemberType.Multiple:
            case JsMemberType.Object:
                return(StandardGlyphGroup.GlyphGroupClass);

            case JsMemberType.Boolean:
            case JsMemberType.String:
            case JsMemberType.Number:
                return(StandardGlyphGroup.GlyphGroupValueType);

            case JsMemberType.Undefined:
                return(StandardGlyphGroup.GlyphGroupException);

            case JsMemberType.Null:
                return(StandardGlyphGroup.GlyphGroupConstant);

            default:
                return(StandardGlyphGroup.GlyphGroupUnknown);
            }
        }
示例#2
0
        private CompletionItem ToCompletionItem(MemberResult m)
        {
            var completion = m.Completion;

            if (string.IsNullOrEmpty(completion))
            {
                completion = m.Name;
            }
            if (string.IsNullOrEmpty(completion))
            {
                return(default(CompletionItem));
            }
            var doc = _textBuilder.GetDocumentation(m.Values, string.Empty);
            var res = new CompletionItem {
                label         = m.Name,
                insertText    = completion,
                documentation = string.IsNullOrWhiteSpace(doc) ? null : new MarkupContent {
                    kind  = _textBuilder.DisplayOptions.preferredFormat,
                    value = doc
                },
                // Place regular items first, advanced entries last
                sortText = char.IsLetter(completion, 0) ? "1" : "2",
                kind     = ToCompletionItemKind(m.MemberType),
                _kind    = m.MemberType.ToString().ToLowerInvariant()
            };

            return(res);
        }
示例#3
0
        private MemberResult ProcessIdentifier(CsIdentifier identifier)
        {
            var result    = new MemberResult();
            var fieldInfo = itemType.GetField(identifier.original_text, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.GetField);

            if (fieldInfo != null)
            {
                result.MemberInfo = fieldInfo;
                result.IsPublic   = fieldInfo.IsPublic;
            }
            else
            {
                var propertyInfo = itemType.GetProperty(identifier.original_text, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.GetProperty);

                if (propertyInfo != null)
                {
                    var getMethod = propertyInfo.GetGetMethod();

                    result.MemberInfo = propertyInfo;

                    if (getMethod == null)
                    {
                        getMethod = propertyInfo.GetGetMethod(true);
                    }

                    result.IsPublic = getMethod.IsPublic;
                }
                else
                {
                    Debugger.Break();
                }
            }

            return(result);
        }
        private static bool IsDecoratorType(MemberResult member)
        {
            switch (member.MemberType)
            {
            case Interpreter.PythonMemberType.Function:
            case Interpreter.PythonMemberType.Class:
                // Classes and functions need further checking
                break;

            case Interpreter.PythonMemberType.Module:
            case Interpreter.PythonMemberType.Namespace:
                // Always include modules
                return(true);

            default:
                // Never include anything else
                return(false);
            }

            // TODO: Only include objects that look like decorators
            // This is probably impossible to tell, since a decorator may be
            // called immediately or as part of creating the function. Filtering
            // down to callables that return a callable would work, but if our
            // analysis has failed then items could randomly be missing.
            return(true);
        }
示例#5
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());
        }
示例#6
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"))));
        }
示例#7
0
        private DocumentSymbol ToDocumentSymbol(MemberResult m, Dictionary <MemberResult, List <MemberResult> > childMap, int currentDepth)
        {
            var res = new DocumentSymbol {
                name          = m.Name,
                detail        = m.Name,
                kind          = ToSymbolKind(m.MemberType),
                deprecated    = false,
                _functionKind = GetFunctionKind(m)
            };

            if (childMap.TryGetValue(m, out var children) && currentDepth < _symbolHierarchyDepthLimit)
            {
                res.children = children.Select(x => ToDocumentSymbol(x, childMap, currentDepth + 1)).ToArray();
            }
            else
            {
                res.children = new DocumentSymbol[0];
            }

            var loc = m.Locations.FirstOrDefault(l => !string.IsNullOrEmpty(l.FilePath));

            if (loc != null)
            {
                res.range = new SourceSpan(
                    new SourceLocation(loc.StartLine, loc.StartColumn),
                    new SourceLocation(loc.EndLine ?? loc.StartLine, loc.EndColumn ?? loc.StartColumn)
                    );
                res.selectionRange = res.range;
            }
            return(res);
        }
        private static bool IsExceptionType(MemberResult member)
        {
            switch (member.MemberType)
            {
            case Interpreter.PythonMemberType.Class:
                // Classes need further checking
                break;

            case Interpreter.PythonMemberType.Module:
            case Interpreter.PythonMemberType.Namespace:
                // Always include modules
                return(true);

            default:
                // Never include anything else
                return(false);
            }

            if (KnownExceptions.Contains(member.Name))
            {
                return(true);
            }

            if (member.Name.IndexOf("Exception", StringComparison.CurrentCultureIgnoreCase) >= 0 ||
                member.Name.IndexOf("Error", StringComparison.CurrentCultureIgnoreCase) >= 0)
            {
                return(true);
            }

            return(false);
        }
示例#9
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());
        }
示例#10
0
        internal MemberResult[] GetMemberNames(ProjectAnalyzer analyzer, string text)
        {
            _completionResultEvent.Reset();
            _memberResults = null;

            using (new SocketLock(this)) {
                Socket.Send(GetMembersCommandBytes);
                SendString(text);
            }

            if (_completionResultEvent.WaitOne(1000) && _memberResults != null)
            {
                MemberResult[] res = new MemberResult[_memberResults.TypeMembers.Count + _memberResults.InstanceMembers.Count];
                int            i   = 0;
                foreach (var member in _memberResults.TypeMembers)
                {
                    res[i++] = CreateMemberResult(analyzer, member.Key, member.Value);
                }
                foreach (var member in _memberResults.InstanceMembers)
                {
                    res[i++] = CreateMemberResult(analyzer, member.Key, member.Value);
                }

                _memberResults = null;
                return(res);
            }
            return(null);
        }
示例#11
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"));
        }
示例#12
0
        protected bool Process(MembersDiscoveryRequest actual)
        {
            Request = actual;
            var          engine = MembersEngine;
            MemberResult result = engine.GetMembers(Request);

            return(this.Matches(result));
        }
示例#13
0
        internal static Completion PythonCompletion(IGlyphService service, MemberResult memberResult)
        {
            StandardGlyphGroup group = memberResult.MemberType.ToGlyphGroup();
            var icon = new IconDescription(group, StandardGlyphItem.GlyphItemPublic);

            var result = new LazyCompletion(memberResult.Name, () => memberResult.Completion, () => memberResult.Documentation, service.GetGlyph(group, StandardGlyphItem.GlyphItemPublic));

            result.Properties.AddProperty(typeof(IconDescription), icon);
            return(result);
        }
示例#14
0
        private void CallGetPrivateField(MemberResult memberResult)
        {
            var typeExtensionsType = typeof(Utils.TypeExtensions);
            var method             = typeExtensionsType.GetMethod("GetPrivateFieldValue", BindingFlags.Static | BindingFlags.Public | BindingFlags.InvokeMethod);

            method = method.MakeGenericMethod(memberResult.Type);

            methodGenerator.Emit(OpCodes.Ldstr, memberResult.Name);

            methodGenerator.EmitCall(OpCodes.Call, method, null);
        }
示例#15
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"));
        }
示例#16
0
        private SetOperation DoUnion(DictionarySet SetA, DictionarySet SetB)
        {
            SetOperation operation2 = new SetOperation();
            int          num        = 0;
            int          num2       = 0;

            operation2.Changed = false;
            while ((num < SetA.Count()) | (num2 < SetB.Count()))
            {
                IMember newObject;
                if (num >= SetA.Count())
                {
                    newObject = SetB[num2];
                    num2++;
                }
                else if (num2 >= SetB.Count())
                {
                    newObject = SetA[num];
                    num++;
                }
                else if (SetA[num].Key().CompareTo(SetB[num2].Key()) == 0)
                {
                    MemberResult result = SetA[num].Union(SetB[num2]);
                    if (result == null)
                    {
                        newObject = SetA[num];
                    }
                    else
                    {
                        newObject = result.NewObject;
                        if (result.SetChanged)
                        {
                            operation2.Changed = true;
                        }
                    }
                    num++;
                    num2++;
                }
                else if (SetA[num].Key().CompareTo(SetB[num2].Key()) < 0)
                {
                    newObject = SetA[num];
                    num++;
                }
                else
                {
                    newObject = SetB[num2];
                    num2++;
                }
                operation2.List.Add(newObject);
            }
            operation2.List.RemoveNullItems();
            return(operation2);
        }
示例#17
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));

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

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

            //Test conclusion
            Assert.That(res, Is.True);
        }
示例#18
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"));
        }
示例#19
0
    static void Main(string[] args)
    {
        // Find your Account Sid and Auth Token at twilio.com/user/account
        const string accountSid    = "accountSid";
        const string authToken     = "authToken";
        const string credentialSid = "credentialSid";
        const string channelSid    = "channelSid";

        // List all members of a channel
        var          client = new TwilioIpMessagingClient(accountSid, authToken);
        MemberResult result = client.ListMembers(credentialSid, channelSid);

        Console.WriteLine(result);
    }
示例#20
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);
        }
示例#21
0
    static void Main(string[] args)
    {
        // Find your Account Sid and Auth Token at twilio.com/user/account
        const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        const string authToken  = "your_auth_token";
        const string serviceSid = "ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        const string channelSid = "CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";

        // List all members of a channel
        var          client = new IpMessagingClient(accountSid, authToken);
        MemberResult result = client.ListMembers(serviceSid, channelSid);

        Console.WriteLine(result);
    }
示例#22
0
        private static CompletionItem ToCompletionItem(MemberResult m)
        {
            var res = new CompletionItem {
                label         = m.Name,
                insertText    = m.Completion,
                documentation = m.Documentation,
                // Place regular items first, advanced entries last
                sortText = char.IsLetter(m.Completion, 0) ? "1" : "2",
                kind     = ToCompletionItemKind(m.MemberType),
                _kind    = m.MemberType.ToString().ToLowerInvariant()
            };

            return(res);
        }
示例#23
0
        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);
        }
示例#24
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);
        }
示例#25
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);
        }
示例#26
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);
        }
示例#28
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);
        }
示例#29
0
        public virtual Completion[] GetModules(IGlyphService glyphService, string text)
        {
            var analysis = GetAnalysisEntry();
            var path     = text.Split('.');

            if (path.Length > 0)
            {
                // path = path[:-1]
                var newPath = new string[path.Length - 1];
                Array.Copy(path, newPath, path.Length - 1);
                path = newPath;
            }

            MemberResult[] modules = new MemberResult[0];
            if (path.Length == 0)
            {
                if (analysis != null)
                {
                    modules = analysis.ProjectState.GetModules(true);
                }

#if REPL
                var repl = Intellisense.GetRepl(_textBuffer);
                if (repl != null)
                {
                    modules = Intellisense.MergeMembers(modules, repl.GetModules());
                }
#endif
            }
            else
            {
                if (analysis != null)
                {
                    modules = analysis.ProjectState.GetModuleMembers(analysis.InterpreterContext, path);
                }
            }

            var sortedAndFiltered = NormalCompletionAnalysis.FilterCompletions(modules, text, (x, y) => x.StartsWith(y));
            Array.Sort(sortedAndFiltered, NormalCompletionAnalysis.ModuleSort);

            var result = new Completion[sortedAndFiltered.Length];
            for (int i = 0; i < sortedAndFiltered.Length; i++)
            {
                result[i] = PythonCompletion(glyphService, sortedAndFiltered[i]);
            }
            return(result);
        }
        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);
        }
示例#31
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);
        }
示例#32
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);
        }
示例#33
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);
        }
示例#34
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);
        }
示例#35
0
        private void ProcessLambdaExpressionBody(CsNode csNode)
        {
            switch (csNode.e)
            {
            case cs_node.n_primary_expression_member_access:

                var memberAccess = (CsPrimaryExpressionMemberAccess)csNode;
                var memberResult = ProcessIdentifier(memberAccess.identifier);

                result = memberResult;

                break;

            default:
                Debugger.Break();
                break;
            }
        }
示例#36
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);
        }
示例#37
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);
        }
示例#38
0
        public void WriteActualValueTo_OneCaptionNotContainedInZeroMembers_DisplayNothingFoundMessage()
        {
            //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();

            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(It.IsAny <NBi.NUnit.Member.ContainConstraint.NothingFoundMessage>()));
        }
示例#39
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"));
        }
示例#40
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));
        }
示例#41
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"))));
        }
示例#42
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"));
        }
        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);
        }
        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);
        }
示例#45
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;
        }
示例#46
0
        public void WriteActualValueTo_OneCaptionNotContainedInZeroMembers_DisplayNothingFoundMessage()
        {
            //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();

            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(It.IsAny<NBi.NUnit.Member.ContainConstraint.NothingFoundMessage>()));
        }
示例#47
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);
        }
        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 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"));
        }