public void TestTemplateKeyParsing() { SegmentArgumentParser key; SegmentArgumentParser.TryParseKeysFromUri("ID={K0}", out key, true).Should().BeTrue(); key.NamedValues.Should().Contain("ID", "{K0}"); }
public void TestTemplateKeyParsingWithTemplateParsingDisabled() { SegmentArgumentParser key; var result = SegmentArgumentParser.TryParseKeysFromUri("ID={K0}", out key, false); Assert.False(result); }
public void AddNamedValueDoesNotOverrideCurrentValueIfPresent() { SegmentArgumentParser key; SegmentArgumentParser.TryParseKeysFromUri("ID=0", out key, false); key.AddNamedValue("ID", "10"); key.NamedValues.Should().Contain("ID", "0"); }
public void AddNamedValueCreatesNewDictionaryIfNull() { SegmentArgumentParser key; SegmentArgumentParser.TryParseKeysFromUri("", out key, false); key.AddNamedValue("ID", "10"); key.NamedValues.Should().Contain("ID", "10"); }
public void AddNamedValueAddsNewValueIfNotPresent() { SegmentArgumentParser key; SegmentArgumentParser.TryParseKeysFromUri("ID=0", out key, false); key.AddNamedValue("ID1", "10"); key.NamedValues.Should().Contain("ID", "0") .And.Contain("ID1", "10"); }
public void TestTemplateKeyParsing() { SegmentArgumentParser key; var result = SegmentArgumentParser.TryParseKeysFromUri("ID={K0}", out key, true); Assert.True(result); Assert.Contains("ID", key.NamedValues.Keys); Assert.Contains("{K0}", key.NamedValues.Values); }
public void AddNamedValueAddsNewValueIfNotPresent() { SegmentArgumentParser key; SegmentArgumentParser.TryParseKeysFromUri("ID=0", out key, false); key.AddNamedValue("ID1", "10"); Assert.Contains("ID", key.NamedValues.Keys); Assert.Contains("0", key.NamedValues.Values); Assert.Contains("ID1", key.NamedValues.Keys); Assert.Contains("10", key.NamedValues.Values); }
public void CurrentNavigaitionPropertyMustBePopulated() { SegmentArgumentParser key; SegmentArgumentParser.TryParseKeysFromUri("0,1", out key, false); Action callWithNullNavProp = () => KeyFinder.FindAndUseKeysFromRelatedSegment( key, new List <IEdmStructuralProperty>() { ModelBuildingHelpers.BuildValidPrimitiveProperty(), ModelBuildingHelpers.BuildValidPrimitiveProperty(), ModelBuildingHelpers.BuildValidPrimitiveProperty() }, null, new KeySegment( new List <KeyValuePair <string, object> >(), ModelBuildingHelpers.BuildValidEntityType(), null)); callWithNullNavProp.ShouldThrow <ArgumentNullException>().WithMessage("currentNavigationProperty", ComparisonMode.EquivalentSubstring); }
public void RawKeyWithMoreThanOnePositionalValueIsUnchanged() { SegmentArgumentParser key; SegmentArgumentParser.TryParseKeysFromUri("0,1", out key, false); var newKey = KeyFinder.FindAndUseKeysFromRelatedSegment( key, new List <IEdmStructuralProperty>() { ModelBuildingHelpers.BuildValidPrimitiveProperty(), ModelBuildingHelpers.BuildValidPrimitiveProperty(), ModelBuildingHelpers.BuildValidPrimitiveProperty() }, ModelBuildingHelpers.BuildValidNavigationProperty(), new KeySegment( new List <KeyValuePair <string, object> >(), ModelBuildingHelpers.BuildValidEntityType(), null)); newKey.Should().Be(key); }
public void IfNoKeyExistsOnNavPropAndNoPartnerExistsKeyIsUnchanged() { SegmentArgumentParser key; SegmentArgumentParser.TryParseKeysFromUri("", out key, false); var newKey = KeyFinder.FindAndUseKeysFromRelatedSegment( key, new List <IEdmStructuralProperty>() { HardCodedTestModel.GetDogIdProp() }, HardCodedTestModel.GetPersonMyDogNavProp(), new KeySegment( new List <KeyValuePair <string, object> >() { new KeyValuePair <string, object>("ID", 32) }, HardCodedTestModel.GetPersonType(), HardCodedTestModel.GetPeopleSet())); Assert.Same(key, newKey); }
public void IfNoReferentialIntegrityConstraintExistsOnPartnerKeyIsUnchanged() { SegmentArgumentParser key; SegmentArgumentParser.TryParseKeysFromUri("", out key, false); var newKey = KeyFinder.FindAndUseKeysFromRelatedSegment( key, new List <IEdmStructuralProperty>() { HardCodedTestModel.GetDogIdProp() }, HardCodedTestModel.GetEmployeeOfficeDogNavProp(), new KeySegment( new List <KeyValuePair <string, object> >() { new KeyValuePair <string, object>("ID", 32) }, HardCodedTestModel.GetPersonType(), HardCodedTestModel.GetPeopleSet())); newKey.Should().Be(key); }
public void IfValueExistsinExistingKeysButNotTargetPropertiesItIsNotWritten() { SegmentArgumentParser key; SegmentArgumentParser.TryParseKeysFromUri("0", out key, false); var newKey = KeyFinder.FindAndUseKeysFromRelatedSegment( key, new List <IEdmStructuralProperty>() { HardCodedTestModel.GetLionId2Property(), HardCodedTestModel.GetLionAttackDatesProp() }, HardCodedTestModel.GetPersonMyLionsNavProp(), new KeySegment( new List <KeyValuePair <string, object> >() { new KeyValuePair <string, object>("ID", 32) }, HardCodedTestModel.GetPersonType(), HardCodedTestModel.GetPeopleSet())); Assert.Same(key, newKey); }
public void PositionalValuesArrayIsCleared() { SegmentArgumentParser key; SegmentArgumentParser.TryParseKeysFromUri("6", out key, false); var newKey = KeyFinder.FindAndUseKeysFromRelatedSegment( key, new List <IEdmStructuralProperty>() { HardCodedTestModel.GetLionId1Property(), HardCodedTestModel.GetLionId2Property() }, HardCodedTestModel.GetPersonMyLionsNavProp(), new KeySegment( new List <KeyValuePair <string, object> >() { new KeyValuePair <string, object>("ID", 32) }, HardCodedTestModel.GetPersonType(), HardCodedTestModel.GetPeopleSet())); Assert.Empty(newKey.PositionalValues); }
public void IfValueExistsInTargetPropertiesAndNotExistingKeysItIsNotWritten() { SegmentArgumentParser key; SegmentArgumentParser.TryParseKeysFromUri("0", out key, false); var newKey = KeyFinder.FindAndUseKeysFromRelatedSegment( key, new List <IEdmStructuralProperty>() { HardCodedTestModel.GetLionId1Property(), HardCodedTestModel.GetLionId2Property(), }, HardCodedTestModel.GetPersonMyLionsNavProp(), new KeySegment( new List <KeyValuePair <string, object> >() { new KeyValuePair <string, object>("Name", "Stuff") }, HardCodedTestModel.GetPersonType(), HardCodedTestModel.GetPeopleSet())); newKey.Should().Be(key); }
public void AreValuesNamedIsAlwaysSet() { SegmentArgumentParser key; SegmentArgumentParser.TryParseKeysFromUri("6", out key, false); var newKey = KeyFinder.FindAndUseKeysFromRelatedSegment( key, new List <IEdmStructuralProperty>() { HardCodedTestModel.GetLionId1Property(), HardCodedTestModel.GetLionId2Property() }, HardCodedTestModel.GetPersonMyLionsNavProp(), new KeySegment( new List <KeyValuePair <string, object> >() { new KeyValuePair <string, object>("ID", 32) }, HardCodedTestModel.GetPersonType(), HardCodedTestModel.GetPeopleSet())); newKey.AreValuesNamed.Should().BeTrue(); }
public void LookForKeysOnBothCurrentNavPropAndPartnerIfItExists() { SegmentArgumentParser key; SegmentArgumentParser.TryParseKeysFromUri("6", out key, false); var newKey = KeyFinder.FindAndUseKeysFromRelatedSegment( key, new List <IEdmStructuralProperty>() { HardCodedTestModel.GetLionId1Property(), HardCodedTestModel.GetLionId2Property() }, HardCodedTestModel.GetDogLionWhoAteMeNavProp(), new KeySegment( new List <KeyValuePair <string, object> >() { new KeyValuePair <string, object>("ID", 32) }, HardCodedTestModel.GetPersonType(), HardCodedTestModel.GetPeopleSet())); Assert.Contains(newKey.NamedValues, kvp => kvp.Key == "ID1" && kvp.Value == "32"); Assert.Contains(newKey.NamedValues, kvp => kvp.Key == "ID2" && kvp.Value == "6"); }
public void LookForKeysOnBothCurrentNavPropAndPartnerIfItExistsWorksForTemplate() { SegmentArgumentParser key; SegmentArgumentParser.TryParseKeysFromUri("{6}", out key, true); var newKey = KeyFinder.FindAndUseKeysFromRelatedSegment( key, new List <IEdmStructuralProperty>() { HardCodedTestModel.GetLionId1Property(), HardCodedTestModel.GetLionId2Property() }, HardCodedTestModel.GetDogLionWhoAteMeNavProp(), new KeySegment( new List <KeyValuePair <string, object> >() { new KeyValuePair <string, object>("ID", 32) }, HardCodedTestModel.GetPersonType(), HardCodedTestModel.GetPeopleSet())); newKey.NamedValues.Should().Contain(new KeyValuePair <string, string>("ID1", "32")) .And.Contain(new KeyValuePair <string, string>("ID2", "{6}")); }
public void IfValueAlreadySpecifiedInRawKeyItIsNotOverwritten() { SegmentArgumentParser key; SegmentArgumentParser.TryParseKeysFromUri("ID1=6", out key, false); var newKey = KeyFinder.FindAndUseKeysFromRelatedSegment( key, new List <IEdmStructuralProperty>() { HardCodedTestModel.GetLionId1Property(), HardCodedTestModel.GetLionId2Property() }, HardCodedTestModel.GetPersonMyLionsNavProp(), new KeySegment( new List <KeyValuePair <string, object> >() { new KeyValuePair <string, object>("ID", 32) }, HardCodedTestModel.GetPersonType(), HardCodedTestModel.GetPeopleSet())); newKey.NamedValues.Should().ContainKey("ID1") .And.ContainValue("6"); }
public void PositionalValueNotAddedIfMoreThanOneMissingValueExists() { SegmentArgumentParser key; SegmentArgumentParser.TryParseKeysFromUri("6", out key, false); var newKey = KeyFinder.FindAndUseKeysFromRelatedSegment( key, new List <IEdmStructuralProperty>() { HardCodedTestModel.GetLionId1Property(), HardCodedTestModel.GetLionId2Property(), HardCodedTestModel.GetLionAttackDatesProp() }, HardCodedTestModel.GetPersonMyLionsNavProp(), new KeySegment( new List <KeyValuePair <string, object> >() { new KeyValuePair <string, object>("ID", 32) }, HardCodedTestModel.GetPersonType(), HardCodedTestModel.GetPeopleSet())); newKey.Should().Be(key); }
public void PositionalValueAddedAsMissingValueIfOnlyOneMissingValueExists() { SegmentArgumentParser key; SegmentArgumentParser.TryParseKeysFromUri("6", out key, false); var newKey = KeyFinder.FindAndUseKeysFromRelatedSegment( key, new List <IEdmStructuralProperty>() { HardCodedTestModel.GetLionId1Property(), HardCodedTestModel.GetLionId2Property() }, HardCodedTestModel.GetPersonMyLionsNavProp(), new KeySegment( new List <KeyValuePair <string, object> >() { new KeyValuePair <string, object>("ID", 32) }, HardCodedTestModel.GetPersonType(), HardCodedTestModel.GetPeopleSet())); newKey.NamedValues.Should().Contain(new KeyValuePair <string, string>("ID1", "32")) .And.Contain(new KeyValuePair <string, string>("ID2", "6")); }
public void TestTemplateKeyParsingWithTemplateParsingDisabled() { SegmentArgumentParser key; SegmentArgumentParser.TryParseKeysFromUri("ID={K0}", out key, false).Should().BeFalse(); }