public void YieldCartLines_04_NoLineItemComponent( IRuleValue <string> targetTag, Cart cart, CommerceContext commerceContext, IRuleExecutionContext context) { /********************************************** * Arrange **********************************************/ context.Fact <CommerceContext>().ReturnsForAnyArgs(commerceContext); commerceContext.AddObject(cart); targetTag.Yield(context).ReturnsForAnyArgs("Smartphone"); /********************************************** * Act **********************************************/ IEnumerable <CartLineComponent> matchingLines = null; Action executeAction = () => matchingLines = targetTag.YieldCartLinesWithTag(context); /********************************************** * Assert **********************************************/ executeAction.Should().NotThrow <Exception>(); matchingLines.Should().BeEmpty(); }
public void YieldCartLines_08_Multiple( IRuleValue <string> targetTag, Cart cart, CartProductComponent component, CommerceContext commerceContext, IRuleExecutionContext context) { /********************************************** * Arrange **********************************************/ context.Fact <CommerceContext>().ReturnsForAnyArgs(commerceContext); component.Tags.Add(new Tag("Smartphone"));; cart.Lines.ForEach(l => l.SetComponent(component)); commerceContext.AddObject(cart); targetTag.Yield(context).ReturnsForAnyArgs("Smartphone"); /********************************************** * Act **********************************************/ var matchingLines = targetTag.YieldCartLinesWithTag(context); /********************************************** * Assert **********************************************/ matchingLines.Should().HaveCount(3); }