public void Build_CrossJoinWithUsinngBranch_ThrowsException() { JoinBuilder joinBuilder = new JoinBuilder(ModelResolvers.JoinExprResolver, this.joinBranches); joinBuilder.AddMainExpr(TestExprFactory.GetExpression("join", ExpressionFactoryNameTarget.OperatorSymbol)); joinBuilder.AddBranch("ds", ModelResolvers.ExprResolver()); joinBuilder.AddBranch("using", ModelResolvers.ExprResolver()); joinBuilder.Branches["main"].OperatorDefinition.Keyword = "cross"; Assert.ThrowsAny <VtlOperatorError>(() => { joinBuilder.Build(); }); }
public void Build_WrongBranchesCombination_ThrowsException(params string[] branches) { JoinBuilder joinBuilder = new JoinBuilder(ModelResolvers.JoinExprResolver, this.joinBranches); joinBuilder.AddMainExpr(TestExprFactory.GetExpression("join", ExpressionFactoryNameTarget.OperatorSymbol)); foreach (string branch in branches) { joinBuilder.AddBranch(branch, TestExprFactory.GetExpression("opt", ExpressionFactoryNameTarget.OperatorSymbol)); } Assert.ThrowsAny <VtlOperatorError>(() => { joinBuilder.Build(); }); }
public void Build_CorrectBranches_JoinExpr(params string[] branches) { JoinBuilder joinBuilder = new JoinBuilder(ModelResolvers.JoinExprResolver, this.joinBranches); joinBuilder.AddMainExpr(TestExprFactory.GetExpression("join", ExpressionFactoryNameTarget.OperatorSymbol)); Assert.Empty(joinBuilder.Branches["main"].OperandsCollection); foreach (string branch in branches) { joinBuilder.AddBranch(branch, TestExprFactory.GetExpression("opt", ExpressionFactoryNameTarget.OperatorSymbol)); } IJoinExpression result = joinBuilder.Build(); Assert.Equal(branches.Length, joinBuilder.Branches["main"].OperandsCollection.Count); Assert.Equal(branches.Length, result.OperandsCollection.Count); foreach (string branch in branches) { Assert.True(joinBuilder.Branches["main"].Operands.ContainsKey(branch)); Assert.True(result.Operands.ContainsKey(branch)); } }