/// <inheritdoc /> protected override IBindingResolverChain AddToChain(IBindingResolverChain resolver, string property) { resolver = resolver.Extend(new PartLinkShortCut()); if (property == nameof(IIdentity.Identifier)) { return(resolver.Extend(new IdentifierShortCut())); } var wpResolver = resolver as WorkplanResolver; if (wpResolver == null) { return(base.AddToChain(resolver, property)); } var match = _wpOperationRegex.Match(property); if (!match.Success) { return(base.AddToChain(resolver, property)); } var argument = match.Groups["name"].Value; var stepResolver = new StepResolver(argument); return(resolver.Append(stepResolver)); }
public void CallAppendAppendsItemToChain(int appendCount) { // Arrange var data = CreateData(); for (var i = 0; i < appendCount; ++i) { _resolver.Append(new ReflectionResolver(nameof(SomeComplexClass.SubClass))); } // Act var value = _resolver.Resolve(data) as SomeComplexClass; // Assert Assert.NotNull(value); Assert.AreEqual(appendCount + 1, value.Value); Assert.AreEqual(appendCount + 1, CountChainLinks(_resolver)); }