예제 #1
0
        public void Test_Oid_StringIndexSetter_Oid_IsNull()
        {
            //Arrange
            Oid Oid = null;

            UriIndex Index = new UriIndex();

            //Act
            ActualValueDelegate <UriIndex> testDelegate = () => IndexSetterFactory.Create(typeof(UriIndex)).Set(Oid, Index) as UriIndex;

            //Assert
            Assert.That(testDelegate, Throws.TypeOf <ArgumentNullException>());
        }
예제 #2
0
        public void Test_Oid_UriIndexSetter_GoodFormat()
        {
            //Arrange
            string   OidString = "urn:oid:1.2.3.4.5";
            Oid      Oid       = new Oid(OidString);
            UriIndex Index     = new UriIndex();

            //Act
            Index = IndexSetterFactory.Create(typeof(UriIndex)).Set(Oid, Index) as UriIndex;

            //Assert
            Assert.AreEqual(Index.Uri, OidString);
        }
예제 #3
0
        public void Test_Oid_UriIndexSetter_Oid_Value_IsNull()
        {
            //Arrange
            var Oid = new Oid();

            Oid.Value = null;
            UriIndex Index = new UriIndex();

            //Act
            Index = IndexSetterFactory.Create(typeof(UriIndex)).Set(Oid, Index) as UriIndex;

            //Assert
            Assert.IsNull(Index);
        }
예제 #4
0
        public void Test_FhirUri_UriIndexSetter_FhirUri_Value_IsNull()
        {
            //Arrange
            var FhirUri = new FhirUri();

            FhirUri.Value = null;
            UriIndex Index = new UriIndex();

            //Act
            Index = IndexSetterFactory.Create(typeof(UriIndex)).Set(FhirUri, Index) as UriIndex;

            //Assert
            Assert.IsNull(Index);
        }
예제 #5
0
        public void Test_FhirUri_UriIndexSetter_GoodFormat()
        {
            //Arrange
            Uri TheUri = new Uri("http://acme.org/fhir/ValueSet/123");

            var FhirUri = new FhirUri();

            FhirUri.Value = TheUri.OriginalString;

            UriIndex Index = new UriIndex();

            //Act
            Index = IndexSetterFactory.Create(typeof(UriIndex)).Set(FhirUri, Index) as UriIndex;

            //Assert
            Assert.AreEqual(Index.Uri, TheUri.OriginalString);
        }
예제 #6
0
        public virtual void Remove([NotNull] IProjectItem projectItem)
        {
            lock (this)
            {
                GuidIndex.Remove(projectItem);
                UriIndex.Remove(projectItem);
                QualifiedNameIndex.Remove(projectItem);
                ShortNameIndex.Remove(projectItem);

                foreach (var snapshot in projectItem.GetSnapshots())
                {
                    SourceFileIndex.Remove(snapshot.SourceFile.GetDirectoryAndFileNameWithoutExtensions());
                }

                var databaseProjectItem = projectItem as DatabaseProjectItem;
                if (databaseProjectItem != null)
                {
                    GuidDatabaseIndex.Remove(databaseProjectItem);
                    QualifiedNameDatabaseIndex.Remove(databaseProjectItem);
                    ShortNameDatabaseIndex.Remove(databaseProjectItem);
                }

                var item = projectItem as Item;
                if (item != null && !item.IsImport)
                {
                    Items.Remove(item);
                }

                if (item != null)
                {
                    ChildrenIndex.Remove(item);
                }

                var template = projectItem as Template;
                if (template != null && !template.IsImport)
                {
                    Templates.Remove(template);
                }
            }
        }
예제 #7
0
        public virtual void Add([NotNull] IProjectItem projectItem)
        {
            lock (this)
            {
                GuidIndex.Add(projectItem);
                UriIndex.Add(projectItem);
                QualifiedNameIndex.Add(projectItem);
                ShortNameIndex.Add(projectItem);

                foreach (var snapshot in projectItem.GetSnapshots())
                {
                    SourceFileIndex.Add(snapshot.SourceFile.GetDirectoryAndFileNameWithoutExtensions(), projectItem);
                }

                if (projectItem is DatabaseProjectItem databaseProjectItem)
                {
                    GuidDatabaseIndex.Add(databaseProjectItem);
                    QualifiedNameDatabaseIndex.Add(databaseProjectItem);
                    ShortNameDatabaseIndex.Add(databaseProjectItem);
                }

                if (projectItem is Item item)
                {
                    ChildrenIndex.Add(item);

                    if (!item.IsImport)
                    {
                        Items.Add(item);
                    }
                }

                if (projectItem is Template template && !template.IsImport)
                {
                    Templates.Add(template);
                }
            }
        }
예제 #8
0
 public virtual T FindQualifiedItem <T>([NotNull] IProjectItemUri uri) where T : class, IProjectItem
 {
     return(UriIndex.FirstOrDefault <T>(uri.ToString()));
 }