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 AddMainExpr_ScalarExpr_ThrowsException() { JoinBuilder joinBuilder = new JoinBuilder(ModelResolvers.JoinExprResolver, this.joinBranches); IExpression mainExpr = TestExprFactory.GetExpression("+", ExpressionFactoryNameTarget.OperatorSymbol); mainExpr.ResultName = "main"; mainExpr.Structure = ModelResolvers.DsResolver(); mainExpr.Structure.Measures.Add(new StructureComponent(BasicDataType.Integer)); Assert.ThrowsAny <Exception>(() => { joinBuilder.AddMainExpr(mainExpr); }); }
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 AddMainExpr_JoinExpr_AddsMainExpr() { JoinBuilder joinBuilder = new JoinBuilder(ModelResolvers.JoinExprResolver, this.joinBranches); IExpression mainExpr = TestExprFactory.GetExpression("join", ExpressionFactoryNameTarget.OperatorSymbol); mainExpr.ResultName = "main"; mainExpr.Structure = ModelResolvers.DsResolver(); mainExpr.Structure.Identifiers.Add(new StructureComponent(BasicDataType.Integer)); mainExpr.Structure.Measures.Add(new StructureComponent(BasicDataType.Integer)); joinBuilder.AddMainExpr(mainExpr); Assert.Equal(mainExpr.ResultName, joinBuilder.Branches["main"].ResultName); Assert.Equal(mainExpr.OperatorSymbol, joinBuilder.Branches["main"].OperatorSymbol); Assert.True(mainExpr.Structure.EqualsObj(joinBuilder.Branches["main"].Structure)); Assert.False(joinBuilder.IsCleared); }
public void AddMainExpr_NonScalarConvertableToJoinExpr_AddsMainExpr() { JoinBuilder joinBuilder = new JoinBuilder(ModelResolvers.JoinExprResolver, this.joinBranches); foreach (string symbol in JoinOperators.Operators) { IExpression mainExpr = TestExprFactory.GetExpression(symbol, ExpressionFactoryNameTarget.OperatorSymbol); mainExpr.ResultName = "main"; mainExpr.Structure = ModelResolvers.DsResolver(); mainExpr.Structure.Identifiers.Add(new StructureComponent(BasicDataType.Integer)); mainExpr.Structure.Measures.Add(new StructureComponent(BasicDataType.Integer)); joinBuilder.AddMainExpr(mainExpr); Assert.Equal(mainExpr, joinBuilder.Branches["main"]); Assert.False(joinBuilder.IsCleared); } }
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)); } }