Пример #1
0
        public void DefaultValues()
        {
            var sut = new UsageContext();

            Assert.AreEqual(Names.UnknownType, sut.Enclosings.Type);
            Assert.AreEqual(Names.UnknownMethod, sut.Enclosings.Method);
            Assert.AreEqual(Lists.NewList <Query>(), sut.AllQueries);
            Assert.AreEqual(new ScopedNameResolver(), sut.NameResolver);
        }
Пример #2
0
 private IOContext(UsageContext context, MergeInfo mergeInfo)
 {
     Debug.Assert(context != UsageContext.MERGE || mergeInfo != null, "MergeInfo must not be null if context is MERGE");
     Debug.Assert(context != UsageContext.FLUSH, "Use IOContext(FlushInfo) to create a FLUSH IOContext");
     this.Context   = context;
     this.ReadOnce  = false;
     this.MergeInfo = mergeInfo;
     this.FlushInfo = null;
 }
Пример #3
0
 public void SetUp()
 {
     _sut = new UsageContext
     {
         Enclosings =
         {
             Type   = SomeType,
             Method = SomeMethodName
         }
     };
 }
Пример #4
0
        public void ReferenceIsMissing()
        {
            var expr = new CompletionExpression
            {
                VariableReference = new VariableReference()
            };
            var context = new UsageContext();

            _sut.Visit(expr, context);

            Assert.Null(context.TargetType);
        }
Пример #5
0
        public void SettingValues()
        {
            var sut = new UsageContext
            {
                Enclosings =
                {
                    Type   = SomeType,
                    Method = SomeMethodName
                }
            };

            Assert.AreEqual(SomeType, sut.Enclosings.Type);
            Assert.AreEqual(SomeMethodName, sut.Enclosings.Method);
        }
Пример #6
0
        public void ReferenceExistsButIsUndefinedInScope()
        {
            var expr = new CompletionExpression
            {
                VariableReference = new VariableReference
                {
                    Identifier = "a"
                }
            };
            var context = new UsageContext();

            _sut.Visit(expr, context);

            Assert.Null(context.TargetType);
        }
Пример #7
0
        public void HappyPath()
        {
            var expr = new CompletionExpression
            {
                VariableReference = new VariableReference
                {
                    Identifier = "a"
                }
            };
            var context = new UsageContext();

            context.DefineVariable("a", Names.Type("T,P"), DefinitionSites.CreateUnknownDefinitionSite());
            _sut.Visit(expr, context);

            Assert.AreEqual(new CoReTypeName("LT"), context.TargetType);
        }
Пример #8
0
        private static List <UsageContext> ParseUsageContext(string value)
        {
            List <UsageContext> usageContexts = new List <UsageContext>();

            JObject usageContextObject = JObject.Parse(value);
            JArray  usageContextArray  = usageContextObject["useContext"] as JArray;

            List <UsageContextElement> usageContextElements = JsonConvert.DeserializeObject <List <UsageContextElement> >(usageContextArray.ToString());

            foreach (UsageContextElement usageContextElement in usageContextElements)
            {
                UsageContext usageContext = new UsageContext();
                if (usageContextElement.Code != null)
                {
                    usageContext.Code = new Coding
                    {
                        System  = string.IsNullOrWhiteSpace(usageContextElement.Code.System) ? null : usageContextElement.Code.System,
                        Code    = string.IsNullOrWhiteSpace(usageContextElement.Code.Code) ? null : usageContextElement.Code.Code,
                        Display = string.IsNullOrWhiteSpace(usageContextElement.Code.Display) ? null : usageContextElement.Code.Display
                    };
                }
                if (usageContextElement.ValueCodeableConcept != null)
                {
                    foreach (CodingElement codingElement in usageContextElement.ValueCodeableConcept.Coding)
                    {
                        usageContext.Value = new CodeableConcept
                        {
                            Coding = new List <Coding>
                            {
                                new Coding
                                {
                                    System  = string.IsNullOrWhiteSpace(codingElement.System) ? null : codingElement.System,
                                    Code    = string.IsNullOrWhiteSpace(codingElement.Code) ? null : codingElement.Code,
                                    Display = string.IsNullOrWhiteSpace(codingElement.Display) ? null : codingElement.Display
                                }
                            }
                        };
                    }
                }

                usageContexts.Add(usageContext);
            }

            return(usageContexts);
        }
Пример #9
0
 public IOContext(UsageContext context)
     : this(context, null)
 {
 }
Пример #10
0
 private IOContext(UsageContext? context, MergeInfo mergeInfo)
 {
     Debug.Assert(context != UsageContext.MERGE || mergeInfo != null, "MergeInfo must not be null if context is MERGE");
     Debug.Assert(context != UsageContext.FLUSH, "Use IOContext(FlushInfo) to create a FLUSH IOContext");
     this.Context = context;
     this.ReadOnce = false;
     this.MergeInfo = mergeInfo;
     this.FlushInfo = null;
 }
Пример #11
0
 public IOContext(UsageContext? context)
     : this(context, null)
 {
 }
Пример #12
0
 public static void InitializeUsageContext(UsageContext context)
 {
     CurrentUsageContext = context;
 }