void ISearchValueVisitor.Visit(UriSearchValue uri)
        {
            EnsureArg.IsNotNull(uri, nameof(uri));

            switch (_modifier)
            {
            case null:
                _outputExpression = Expression.Equals(FieldName.Uri, _componentIndex, uri.Uri);
                break;

            case SearchModifierCode.Above:
                _outputExpression = Expression.And(
                    Expression.EndsWith(FieldName.Uri, _componentIndex, uri.Uri, false),
                    Expression.NotStartsWith(FieldName.Uri, _componentIndex, KnownUriSchemes.Urn, false));
                break;

            case SearchModifierCode.Below:
                _outputExpression = Expression.And(
                    Expression.StartsWith(FieldName.Uri, _componentIndex, uri.Uri, false),
                    Expression.NotStartsWith(FieldName.Uri, _componentIndex, KnownUriSchemes.Urn, false));
                break;

            default:
                ThrowModifierNotSupported();
                break;
            }
        }
        public void GivenASearchValue_WhenToStringIsCalled_ThenCorrectStringShouldBeReturned()
        {
            string expected = "http://uri3";

            UriSearchValue value = new UriSearchValue(expected);

            Assert.Equal(expected, value.ToString());
        }
        public void GivenAValidString_WhenParsed_ThenCorrectSearchValueShouldBeReturned()
        {
            string expected = "http://uri2";

            UriSearchValue value = UriSearchValue.Parse(expected);

            Assert.NotNull(value);
            Assert.Equal(expected, value.Uri);
        }
        public void GivenAnUriSearchValue_WhenGenerated_ThenCorrectJObjectShouldBeCreated()
        {
            const string uri = "http://uri";

            var value = new UriSearchValue(uri);

            TestAndValidateOutput(
                "uri",
                value,
                new[] { CreateTuple("u", uri) });
        }
        protected override IEnumerable <ReferenceSearchValue> ConvertTo(FhirUri value)
        {
            if (value.Value == null)
            {
                yield break;
            }

            var reference = new UriSearchValue(value.Value, false);

            // Contained resources will not be searchable.
            if (reference.Uri.StartsWith("#", StringComparison.Ordinal) ||
                reference.Uri.StartsWith("urn:", StringComparison.Ordinal))
            {
                yield break;
            }

            yield return(_referenceSearchValueParser.Parse(reference.Uri));
        }
예제 #6
0
 void ISearchValueVisitor.Visit(UriSearchValue uri)
 {
     AddProperty(SearchValueConstants.UriName, uri.Uri);
 }
        public void GivenASearchValue_WhenIsValidCompositeComponentIsCalled_ThenTrueShouldBeReturned()
        {
            var value = new UriSearchValue("http://uri");

            Assert.True(value.IsValidAsCompositeComponent);
        }
 public void GivenAnInvalidString_WhenParsing_ThenExceptionShouldBeThrown(string s)
 {
     Assert.Throws <ArgumentException>(ParamNameS, () => UriSearchValue.Parse(s));
 }
 public void GivenANullString_WhenParsing_ThenExceptionShouldBeThrown()
 {
     Assert.Throws <ArgumentNullException>(ParamNameS, () => UriSearchValue.Parse(null));
 }
 public void Visit(UriSearchValue uri)
 {
     AddProperty(_prefix, uri.Uri);
 }