예제 #1
0
        public void Test_urn_oid()
        {
            //Arrange
            string Request = "urn:oid:1.2.36.1.2001.1001.101";

            SetServiceRootMok(PrimaryServiceRootWeb);

            //Act
            var Result = new PyroFhirUri(MokPrimaryServiceRootCache.Object);

            //Assert
            Assert.IsTrue(Result.Parse(Request));
            Assert.AreEqual(Result.PrimaryServiceRootServers.OriginalString, PrimaryServiceRootWeb);
            Assert.AreEqual(Result.IsUrn, true);
            Assert.AreEqual(Result.UrnType, UrnType.oid);
            Assert.AreEqual(Result.Urn, "urn:oid:1.2.36.1.2001.1001.101");

            Assert.AreEqual(Result.IsContained, false);
            Assert.AreEqual(Result.IsFormDataSearch, false);
            Assert.AreEqual(Result.IsHistoryReferance, false);
            Assert.AreEqual(Result.IsMetaData, false);
            Assert.AreEqual(Result.IsOperation, false);
            Assert.AreEqual(Result.IsRelativeToServer, false);
            Assert.AreEqual(Result.OperationType, null);
            Assert.AreEqual(Result.OperationName, null);
            Assert.AreEqual(Result.PrimaryServiceRootRemote, null);
            Assert.AreEqual(Result.ResourceId, null);
            Assert.AreEqual(Result.ResourseName, null);
            Assert.AreEqual(Result.VersionId, null);
        }
예제 #2
0
        public void Test_SetActiveCompartment_OperationUrl()
        {
            //Arrange
            // URl : Http://localhost:50579/fhir/CompartmentDefinition/pyro-patient/$x-set-compartment-active
            string HttpsPrimaryServiceRootLocal = "https://localhost:8888/fhir";

            SetServiceRootMok(HttpsPrimaryServiceRootLocal);
            string Request = HttpsPrimaryServiceRootLocal + "/CompartmentDefinition/pyro-patient/$x-set-compartment-active";

            //Act
            var Result = new PyroFhirUri(MokPrimaryServiceRootCache.Object);

            //Assert
            Assert.IsTrue(Result.Parse(Request));
            Assert.AreEqual(Result.PrimaryServiceRootServers.OriginalString, HttpsPrimaryServiceRootLocal);
            Assert.AreEqual(Result.ResourseName, "CompartmentDefinition");
            Assert.AreEqual(Result.ResourceId, "pyro-patient");
            Assert.IsFalse(Result.IsCompartment);
            //Assert.AreEqual(Result.CompartmentalisedResourseName, "Condition");
            Assert.AreEqual(Result.IsRelativeToServer, true);
            Assert.AreEqual(Result.IsOperation, true);
            Assert.AreEqual(Result.OperationType, OperationScope.Instance);
            Assert.AreEqual(Result.OperationName, "x-set-compartment-active");
            //Assert.AreEqual(Result.Query, "code:in=http://hspc.org/ValueSet/acute-concerns");
        }
예제 #3
0
        public void Test_Compartment_With_SearchParameters()
        {
            //Arrange
            // URl : Http://localhost:50579/fhirapi/Patient/10/Condition?code:in=http://hspc.org/ValueSet/acute-concerns
            string HttpsPrimaryServiceRootLocal = "https://localhost:8888/fhir";

            SetServiceRootMok(HttpsPrimaryServiceRootLocal);
            string Request = HttpsPrimaryServiceRootLocal + "/Patient/10/Condition?code:in=http://hspc.org/ValueSet/acute-concerns";

            //Act
            var Result = new PyroFhirUri(MokPrimaryServiceRootCache.Object);

            //Assert
            Assert.IsTrue(Result.Parse(Request));
            Assert.AreEqual(Result.PrimaryServiceRootServers.OriginalString, HttpsPrimaryServiceRootLocal);
            Assert.AreEqual(Result.ResourseName, "Patient");
            Assert.AreEqual(Result.ResourceId, "10");
            Assert.IsTrue(Result.IsCompartment);
            Assert.AreEqual(Result.CompartmentalisedResourseName, "Condition");
            Assert.AreEqual(Result.IsRelativeToServer, true);
            Assert.AreEqual(Result.IsOperation, false);
            Assert.AreEqual(Result.OperationType, null);
            Assert.AreEqual(Result.OperationName, null);
            Assert.AreEqual(Result.Query, "code:in=http://hspc.org/ValueSet/acute-concerns");
        }
예제 #4
0
        public void Test_PostUrl()
        {
            //Arrange
            // URl : Http://localhost:50579/fhirapi/Patient/10/Condition?code:in=http://hspc.org/ValueSet/acute-concerns
            string HttpsPrimaryServiceRootLocal = "https://localhost:8888/fhir";

            SetServiceRootMok(HttpsPrimaryServiceRootLocal);
            //Just the resource id from a resource reference with no Resource patient=TheResourceId rather than patient=Patient/TheResourceId
            string Request = $"{HttpsPrimaryServiceRootLocal}/Patient";

            //Act
            var Result = new PyroFhirUri(MokPrimaryServiceRootCache.Object);

            //Assert
            Assert.IsTrue(Result.Parse(Request));
            Assert.AreEqual(Result.PrimaryServiceRootServers.OriginalString, HttpsPrimaryServiceRootLocal);
            Assert.AreEqual(Result.ResourseName, "Patient");
            Assert.AreEqual(Result.ResourceId, null);
            Assert.IsFalse(Result.IsCompartment);
            Assert.AreEqual(Result.CompartmentalisedResourseName, null);
            Assert.AreEqual(Result.IsRelativeToServer, true);
            Assert.AreEqual(Result.IsOperation, false);
            Assert.AreEqual(Result.OperationType, null);
            Assert.AreEqual(Result.OperationName, null);
            Assert.AreEqual(Result.Query, null);
        }
예제 #5
0
        public void Test_urn_oid_TryParse_False()
        {
            //Arrange
            string Request = "urn:oid:1.2.06.0.2001.1001.101";

            SetServiceRootMok(PrimaryServiceRootWeb);

            //Act
            var Result = new PyroFhirUri(MokPrimaryServiceRootCache.Object);

            //Assert
            Assert.IsFalse(Result.Parse(Request));
            Assert.AreEqual(Result.ParseErrorMessage, "The urn:oid value given is not valid: urn:oid:1.2.06.0.2001.1001.101");
        }
예제 #6
0
        public void Test_urn_uuid_TryParse_False()
        {
            //Arrange
            string Request = "urn:uuid:61ebe359-XXXXX-bfdc-4613-8bf2-c5e300945f0a";

            SetServiceRootMok(PrimaryServiceRootWeb);

            //Act
            var Result = new PyroFhirUri(MokPrimaryServiceRootCache.Object);

            //Assert
            Assert.IsFalse(Result.Parse(Request));
            Assert.AreEqual(Result.ParseErrorMessage, "The urn:uuid value given is not valid: urn:uuid:61ebe359-XXXXX-bfdc-4613-8bf2-c5e300945f0a");
            Assert.IsTrue(Result.ErrorInParseing);
        }
예제 #7
0
        public void Test_BasicWebRubbishAtEnd()
        {
            //Arrange
            string Request = PrimaryServiceRootWeb + "/Patient/10/RUBBISH";

            SetServiceRootMok(PrimaryServiceRootWeb);

            //Act
            var Result = new PyroFhirUri(MokPrimaryServiceRootCache.Object);

            //Assert
            Assert.IsFalse(Result.Parse(Request));
            Assert.IsTrue(Result.ErrorInParseing);
            Assert.IsTrue(!string.IsNullOrWhiteSpace(Result.ParseErrorMessage));
        }
예제 #8
0
        public void Test_urn_uuid_TryParse_True()
        {
            //Arrange
            string Request = "urn:uuid:61ebe359-bfdc-4613-8bf2-c5e300945f0a";

            SetServiceRootMok(PrimaryServiceRootWeb);

            //Act
            var Result = new PyroFhirUri(MokPrimaryServiceRootCache.Object);

            //Assert
            Assert.IsTrue(Result.Parse(Request));
            Assert.AreEqual(Result.Urn, "urn:uuid:61ebe359-bfdc-4613-8bf2-c5e300945f0a");
            Assert.AreEqual(Result.IsUrn, true);
            Assert.AreEqual(Result.UrnType, UrnType.uuid);
        }
예제 #9
0
        public void Test_urn_oid_TryParse_True()
        {
            //Arrange
            string Request = "urn:oid:1.2.36.1.2001.1001.101";

            SetServiceRootMok(PrimaryServiceRootWeb);

            //Act
            var Result = new PyroFhirUri(MokPrimaryServiceRootCache.Object);

            //Assert
            Assert.IsTrue(Result.Parse(Request));
            Assert.AreEqual(Result.Urn, "urn:oid:1.2.36.1.2001.1001.101");
            Assert.AreEqual(Result.IsUrn, true);
            Assert.AreEqual(Result.UrnType, UrnType.oid);
        }
예제 #10
0
        public void Test_RelativeHistoryId()
        {
            //Arrange
            string Request = "Patient/10/_history/20";

            SetServiceRootMok(PrimaryServiceRootWeb);

            //Act
            var Result = new PyroFhirUri(MokPrimaryServiceRootCache.Object);

            //Assert
            Assert.IsTrue(Result.Parse(Request));
            Assert.AreEqual(Result.PrimaryServiceRootServers.OriginalString, PrimaryServiceRootWeb);
            Assert.AreEqual(Result.IsHistoryReferance, true);
            Assert.AreEqual(Result.VersionId, "20");
            Assert.AreEqual(Result.IsRelativeToServer, true);
        }
예제 #11
0
        public void Test_BasicRemoteHistory()
        {
            //Arrange
            string Request = PrimaryServiceRootRemote + "/Patient/10/_history";

            SetServiceRootMok(PrimaryServiceRootLocal);

            //Act
            var Result = new PyroFhirUri(MokPrimaryServiceRootCache.Object);

            //Assert
            Assert.IsTrue(Result.Parse(Request));
            Assert.AreEqual(Result.PrimaryServiceRootRemote.OriginalString, PrimaryServiceRootRemote);
            Assert.AreEqual(Result.IsHistoryReferance, true);
            Assert.AreEqual(Result.VersionId, null);
            Assert.AreEqual(Result.IsRelativeToServer, false);
        }
예제 #12
0
        public void Test_ContainedWithResourceRef()
        {
            //Arrange
            string Request = "Patient/#10";

            SetServiceRootMok(PrimaryServiceRootLocal);

            //Act
            var Result = new PyroFhirUri(MokPrimaryServiceRootCache.Object);

            //Assert
            Assert.IsTrue(Result.Parse(Request));
            Assert.AreEqual(Result.IsContained, true);
            Assert.AreEqual(Result.ResourceId, "10");
            Assert.AreEqual(Result.ResourseName, "Patient");
            Assert.AreEqual(Result.IsRelativeToServer, false);
        }
예제 #13
0
        public void Test_BasicWeb()
        {
            //Arrange
            string Request = PrimaryServiceRootWeb + "/Patient/10";

            SetServiceRootMok(PrimaryServiceRootWeb);

            //Act
            var Result = new PyroFhirUri(MokPrimaryServiceRootCache.Object);


            //Assert
            Assert.IsTrue(Result.Parse(Request));
            Assert.AreEqual(Result.PrimaryServiceRootServers.OriginalString, PrimaryServiceRootWeb);
            Assert.AreEqual(Result.ResourseName, "Patient");
            Assert.AreEqual(Result.ResourceId, "10");
            Assert.AreEqual(Result.IsRelativeToServer, true);
        }
예제 #14
0
        public void Test_BasicWebFormData()
        {
            //Arrange
            //Http://localhost:50579/fhirapi/Organization/_search
            string Request = PrimaryServiceRootWeb + "/Patient/_search";

            SetServiceRootMok(PrimaryServiceRootWeb);

            //Act
            var Result = new PyroFhirUri(MokPrimaryServiceRootCache.Object);

            //Assert
            Assert.IsTrue(Result.Parse(Request));
            Assert.AreEqual(Result.PrimaryServiceRootServers.OriginalString, PrimaryServiceRootWeb);
            Assert.AreEqual(Result.IsHistoryReferance, false);
            Assert.AreEqual(Result.IsFormDataSearch, true);
            Assert.AreEqual(Result.IsRelativeToServer, true);
        }
예제 #15
0
        public void Test_BasicWebResourceInstanceOperation()
        {
            //Arrange
            string Request = PrimaryServiceRootWeb + "/Patient/10/$SomeOperation?given=john&family=smith";

            SetServiceRootMok(PrimaryServiceRootWeb);

            //Act
            var Result = new PyroFhirUri(MokPrimaryServiceRootCache.Object);

            //Assert
            Assert.IsTrue(Result.Parse(Request));
            Assert.AreEqual(Result.PrimaryServiceRootServers.OriginalString, PrimaryServiceRootWeb);
            Assert.AreEqual(Result.IsRelativeToServer, true);
            Assert.AreEqual(Result.IsOperation, true);
            Assert.AreEqual(Result.OperationType, Pyro.Common.Enum.FhirOperationEnum.OperationScope.Instance);
            Assert.AreEqual(Result.OperationName, "SomeOperation");
            Assert.AreEqual(Result.Query, "given=john&family=smith");
        }
예제 #16
0
        public void Test_BasicRemoteBaseOperation()
        {
            //Arrange
            string Request = PrimaryServiceRootRemote + "/$SomeOperation?given=john&family=smith";

            SetServiceRootMok(PrimaryServiceRootLocal);

            //Act
            var Result = new PyroFhirUri(MokPrimaryServiceRootCache.Object);

            //Assert
            Assert.IsTrue(Result.Parse(Request));
            Assert.AreEqual(Result.PrimaryServiceRootRemote.OriginalString, PrimaryServiceRootRemote);
            Assert.AreEqual(Result.IsRelativeToServer, false);
            Assert.AreEqual(Result.IsOperation, true);
            Assert.AreEqual(Result.OperationType, Pyro.Common.Enum.FhirOperationEnum.OperationScope.Base);
            Assert.AreEqual(Result.OperationName, "SomeOperation");
            Assert.AreEqual(Result.Query, "given=john&family=smith");
        }
예제 #17
0
        public void Test_BasicLocal()
        {
            //Arrange
            // URl : Http://localhost:50579/fhirapi/Organization/1
            string HttpsPrimaryServiceRootLocal = "https://localhost:8888/fhir";

            SetServiceRootMok(HttpsPrimaryServiceRootLocal);
            string Request = HttpsPrimaryServiceRootLocal + "/Patient/10";

            //Act
            var Result = new PyroFhirUri(MokPrimaryServiceRootCache.Object);

            //Assert
            Assert.IsTrue(Result.Parse(Request));
            Assert.AreEqual(Result.PrimaryServiceRootServers.OriginalString, HttpsPrimaryServiceRootLocal);
            Assert.AreEqual(Result.ResourseName, "Patient");
            Assert.AreEqual(Result.ResourceId, "10");
            Assert.AreEqual(Result.IsRelativeToServer, true);
            Assert.AreEqual(Result.IsOperation, false);
            Assert.AreEqual(Result.OperationType, null);
            Assert.AreEqual(Result.OperationName, null);
        }
예제 #18
0
        public void Test_BasicLocalGuidResourceId()
        {
            //Arrange
            // URl : http://localhost:8888/fhir/Binary/d20cf99e-1e97-4ca8-b856-824f4ca15448
            string HttpsPrimaryServiceRootLocal = "http://localhost:8888/fhir";

            SetServiceRootMok(HttpsPrimaryServiceRootLocal);
            //string Request = HttpsPrimaryServiceRootLocal + "/Binary/d20cf99e-1e97-4ca8-b856-824f4ca15448";
            string Request = "http://localhost:8888/fhir/Binary/489effed-92c1-4ce0-a74e-c9ea13626c7d";

            //Act
            var Result = new PyroFhirUri(MokPrimaryServiceRootCache.Object);

            //Assert
            Assert.IsTrue(Result.Parse(Request));
            Assert.AreEqual(Result.PrimaryServiceRootServers.OriginalString, HttpsPrimaryServiceRootLocal);
            Assert.AreEqual(Result.ResourseName, "Binary");
            Assert.AreEqual(Result.ResourceId, "489effed-92c1-4ce0-a74e-c9ea13626c7d");
            Assert.AreEqual(Result.IsRelativeToServer, true);
            Assert.AreEqual(Result.IsOperation, false);
            Assert.AreEqual(Result.OperationType, null);
            Assert.AreEqual(Result.OperationName, null);
        }