Java Code Examples for com.project.bi.exceptions.CompilationException#printStackTrace()

The following examples show how to use com.project.bi.exceptions.CompilationException#printStackTrace() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: MongoDBQueryTest.java    From flair-engine with Apache License 2.0 4 votes vote down vote up
@Test
@Transactional
public void equalOperatorTest() throws Exception {


    List<String> operators = Arrays.asList("=", ">", "<", "<=", ">=", "<>");

    String expectedQuery = "";

    // Create Query
    QueryDTO queryDto = new QueryDTO();

    queryDto.setFields(Arrays.asList(new FieldDTO("*")));
    ConditionExpressionDTO expDto = new ConditionExpressionDTO();

    CompareConditionExpression copmareCdt = new CompareConditionExpression();
    copmareCdt.setFeatureName("order_item_id");
    copmareCdt.setValue("1");

    for (String opr : operators) {


        switch (opr) {

            case "=": {
                copmareCdt.setComparatorType(ComparatorType.EQ);
                expectedQuery = "ecommerce.aggregate([{$match:{order_item_id:1}}])";
            }
            break;
            case ">": {
                copmareCdt.setComparatorType(ComparatorType.GT);
                expectedQuery = "ecommerce.aggregate([{$match:{order_item_id:{$gt:1}}}])";
            }
            break;
            case "<": {
                copmareCdt.setComparatorType(ComparatorType.LT);
                expectedQuery = "ecommerce.aggregate([{$match:{order_item_id:{$lt:1}}}])";
            }
            break;
            case "<=": {
                copmareCdt.setComparatorType(ComparatorType.LTE);
                expectedQuery = "ecommerce.aggregate([{$match:{order_item_id:{$lte:1}}}])";
            }
            break;
            case ">=": {
                copmareCdt.setComparatorType(ComparatorType.GTE);
                expectedQuery = "ecommerce.aggregate([{$match:{order_item_id:{$gte:1}}}])";
            }
            break;
            case "<>": {
                copmareCdt.setComparatorType(ComparatorType.NEQ);
                expectedQuery = "ecommerce.aggregate([{$match:{order_item_id:{$ne:1}}}])";
            }
            break;

        }

        expDto.setConditionExpression(copmareCdt);
        queryDto.setConditionExpressions(Arrays.asList(expDto));
        queryDto.setSource("ecommerce");


        FlairQuery query = new FlairQuery(queryDto.interpret(), queryDto.isMetaRetrieved());

        FlairFactory flairFactory = queryAbstractFactory.getQueryFactory(connection.getConnectionType().getBundleClass());

        FlairCompiler compiler = flairFactory.getCompiler();

        QueryExecutor executor = flairFactory.getExecutor(connection);

        StringWriter writer = new StringWriter();

        try {
            compiler.compile(query, writer);
        } catch (CompilationException e) {
            e.printStackTrace();
        }

        log.info("Expected Query : {}", expectedQuery);
        log.info("Genrated Query : {}", writer.toString());

        assertThat(expectedQuery).isEqualToIgnoringCase(writer.toString());

    }


    //   retVal = queryService.executeQuery(connection, query);


}
 
Example 2
Source File: OracleQueryTest.java    From flair-engine with Apache License 2.0 3 votes vote down vote up
@Test
  @Transactional
  public void replaceFunctionTest() throws Exception {
  	
  	
  	String expectedQuery="";
  	
  	// Create Query
      QueryDTO queryDto = new QueryDTO();

queryDto.setFields(Arrays.asList(new FieldDTO("Men"), new FieldDTO("Women")));
     
   queryDto.setSource("ecommerce");

expectedQuery="SELECT Men, Women FROM ecommerce";

FlairQuery query = new FlairQuery(queryDto.interpret(), queryDto.isMetaRetrieved());

      FlairFactory flairFactory = queryAbstractFactory.getQueryFactory(connection.getConnectionType().getBundleClass());
      
      FlairCompiler compiler = flairFactory.getCompiler();

      QueryExecutor executor = flairFactory.getExecutor(connection);

      StringWriter writer = new StringWriter();

      try {
          compiler.compile(query, writer);
      } catch (CompilationException e) {
          e.printStackTrace();
      }
  
      log.info("Expected Query : {}",expectedQuery);
      log.info("Genrated Query : {}",writer.toString());
      
      assertThat(expectedQuery).isEqualToIgnoringCase(writer.toString());
  		
  }
 
Example 3
Source File: MySqlQueryTest.java    From flair-engine with Apache License 2.0 3 votes vote down vote up
@Test
  @Transactional
  public void replaceFunctionTest() throws Exception {
  	
  	
  	String expectedQuery="";
  	
  	// Create Query
      QueryDTO queryDto = new QueryDTO();

queryDto.setFields(Arrays.asList(new FieldDTO("Men"), new FieldDTO("Women")));
     
   queryDto.setSource("ecommerce");

expectedQuery="SELECT Men, Women FROM ecommerce";

FlairQuery query = new FlairQuery(queryDto.interpret(), queryDto.isMetaRetrieved());

      FlairFactory flairFactory = queryAbstractFactory.getQueryFactory(connection.getConnectionType().getBundleClass());
      
      FlairCompiler compiler = flairFactory.getCompiler();

      QueryExecutor executor = flairFactory.getExecutor(connection);

      StringWriter writer = new StringWriter();

      try {
          compiler.compile(query, writer);
      } catch (CompilationException e) {
          e.printStackTrace();
      }
  
      log.info("Expected Query : {}",expectedQuery);
      log.info("Genrated Query : {}",writer.toString());
      
      
      assertThat(expectedQuery).isEqualToIgnoringCase(writer.toString());
  		
  }
 
Example 4
Source File: OracleQueryTest.java    From flair-engine with Apache License 2.0 3 votes vote down vote up
@Test
  @Transactional
  public void subStrFunctionTest() throws Exception {
  	
  	
  	String expectedQuery="";
  	
  	// Create Query
      QueryDTO queryDto = new QueryDTO();
     
      queryDto.setFields(Arrays.asList(new FieldDTO("product_name", "substr")));
     
   queryDto.setSource("ecommerce");
  		
  	expectedQuery="SELECT substr(product_name) FROM ecommerce";

FlairQuery query = new FlairQuery(queryDto.interpret(), queryDto.isMetaRetrieved());

      FlairFactory flairFactory = queryAbstractFactory.getQueryFactory(connection.getConnectionType().getBundleClass());
      
      FlairCompiler compiler = flairFactory.getCompiler();

      QueryExecutor executor = flairFactory.getExecutor(connection);

      StringWriter writer = new StringWriter();

      try {
          compiler.compile(query, writer);
      } catch (CompilationException e) {
          e.printStackTrace();
      }
  
      log.info("Expected Query : {}",expectedQuery);
      log.info("Genrated Query : {}",writer.toString());
      
      
      assertThat(expectedQuery).isEqualToIgnoringCase(writer.toString());
  		
  }
 
Example 5
Source File: RedshiftQueryTest.java    From flair-engine with Apache License 2.0 3 votes vote down vote up
@Test
@Transactional
public void replaceFunctionTest() throws Exception {


    String expectedQuery="";

    // Create Query
    QueryDTO queryDto = new QueryDTO();

    queryDto.setFields(Arrays.asList(new FieldDTO("Men"), new FieldDTO("Women")));

    queryDto.setSource("ecommerce");

    expectedQuery="SELECT Men, Women FROM ecommerce";

    FlairQuery query = new FlairQuery(queryDto.interpret(), queryDto.isMetaRetrieved());

    FlairFactory flairFactory = queryAbstractFactory.getQueryFactory(connection.getConnectionType().getBundleClass());

    FlairCompiler compiler = flairFactory.getCompiler();

    QueryExecutor executor = flairFactory.getExecutor(connection);

    StringWriter writer = new StringWriter();

    try {
        compiler.compile(query, writer);
    } catch (CompilationException e) {
        e.printStackTrace();
    }

    log.info("Expected Query : {}",expectedQuery);
    log.info("Genrated Query : {}",writer.toString());

    assertThat(expectedQuery).isEqualToIgnoringCase(writer.toString());

}
 
Example 6
Source File: CockroachdbQueryTest.java    From flair-engine with Apache License 2.0 2 votes vote down vote up
@Test
  @Transactional
  public void likeOperatorTest() throws Exception {
  	
  	
  	String expectedQuery="";
  	
  	// Create Query
      QueryDTO queryDto = new QueryDTO();
     
      queryDto.setFields(Arrays.asList(new FieldDTO("*")));
      ConditionExpressionDTO expDto=new ConditionExpressionDTO();
      
      LikeConditionExpression likeCdt=new LikeConditionExpression();
      likeCdt.setFeatureName("product_name");
      likeCdt.setValue("no");
      
  	expDto.setConditionExpression(likeCdt);  
   queryDto.setConditionExpressions(Arrays.asList(expDto));
   queryDto.setSource("ecommerce");
  		
  	expectedQuery="select * from ecommerce where product_name LIKE '%no%'";

FlairQuery query = new FlairQuery(queryDto.interpret(), queryDto.isMetaRetrieved());

      FlairFactory flairFactory = queryAbstractFactory.getQueryFactory(connection.getConnectionType().getBundleClass());
      
      FlairCompiler compiler = flairFactory.getCompiler();

      QueryExecutor executor = flairFactory.getExecutor(connection);

      StringWriter writer = new StringWriter();

      try {
          compiler.compile(query, writer);
      } catch (CompilationException e) {
          e.printStackTrace();
      }
  
      log.info("Expected Query : {}",expectedQuery);
      log.info("Genrated Query : {}",writer.toString());
      
      assertThat(expectedQuery).isEqualToIgnoringCase(writer.toString());
  		
  }
 
Example 7
Source File: AthenaQueryTest.java    From flair-engine with Apache License 2.0 2 votes vote down vote up
@Test
@Transactional
public void inOperatorTest() throws Exception {

    List<String> values=Arrays.asList("PENDING","PENDING_PAYMENT","COMPLETE");

    String expectedQuery="select * from ecommerce where order_status in ('PENDING')";
    // Create Query
    QueryDTO queryDto = new QueryDTO();


    queryDto.setFields(Arrays.asList(new FieldDTO("*")));
    ConditionExpressionDTO expDto=new ConditionExpressionDTO();

    ContainsConditionExpression containCdt=new ContainsConditionExpression();
    containCdt.setFeatureName("order_status");

    containCdt.setValues(Arrays.asList("PENDING"));

    expDto.setConditionExpression(containCdt);

    queryDto.setConditionExpressions(Arrays.asList(expDto));

    queryDto.setSource("ecommerce");

    Connection connection = connectionRepository.findByLinkId(ATHENA_ID);


    FlairQuery query = new FlairQuery(queryDto.interpret(), queryDto.isMetaRetrieved());

    FlairFactory flairFactory = queryAbstractFactory.getQueryFactory(connection.getConnectionType().getBundleClass());

    FlairCompiler compiler = flairFactory.getCompiler();

    QueryExecutor executor = flairFactory.getExecutor(connection);

    StringWriter writer = new StringWriter();

    try {
        compiler.compile(query, writer);
    } catch (CompilationException e) {
        e.printStackTrace();
    }

    log.info("Expected Query : {}",expectedQuery);
    log.info("Genrated Query : {}",writer.toString());

    assertThat(expectedQuery).isEqualToIgnoringCase(writer.toString());

    //   retVal = queryService.executeQuery(connection, query);


}
 
Example 8
Source File: CockroachdbQueryTest.java    From flair-engine with Apache License 2.0 2 votes vote down vote up
@Test
  @Transactional
  public void mathFunctionTest() throws Exception {
  	
  	
  	String expectedQuery="";
  	
  	// Create Query
      QueryDTO queryDto = new QueryDTO();
     
      queryDto.setFields(Arrays.asList(
		new FieldDTO("*", "count"),
		new FieldDTO("order_item_product_price", "min"),
		new FieldDTO("order_item_product_price", "max"),
		new FieldDTO("order_item_product_price", "sum")
));
     
   queryDto.setSource("ecommerce");
  		
  	expectedQuery="SELECT count(*), min(order_item_product_price), max(order_item_product_price), sum(order_item_product_price) FROM ecommerce";

FlairQuery query = new FlairQuery(queryDto.interpret(), queryDto.isMetaRetrieved());

      FlairFactory flairFactory = queryAbstractFactory.getQueryFactory(connection.getConnectionType().getBundleClass());
      
      FlairCompiler compiler = flairFactory.getCompiler();

      QueryExecutor executor = flairFactory.getExecutor(connection);

      StringWriter writer = new StringWriter();

      try {
          compiler.compile(query, writer);
      } catch (CompilationException e) {
          e.printStackTrace();
      }
  
      log.info("Expected Query : {}",expectedQuery);
      log.info("Genrated Query : {}",writer.toString());
      
      
      assertThat(expectedQuery).isEqualToIgnoringCase(writer.toString());
  		
  }
 
Example 9
Source File: MySqlQueryTest.java    From flair-engine with Apache License 2.0 2 votes vote down vote up
@Test
 @Transactional
 public void equalOperatorTest() throws Exception {
 	
 	
 	List<String> operators=Arrays.asList("=",">","<","<=",">=","<>");
 	
 	String expectedQuery="";
 	
 	// Create Query
     QueryDTO queryDto = new QueryDTO();
    
     queryDto.setFields(Arrays.asList(new FieldDTO("*")));
     ConditionExpressionDTO expDto=new ConditionExpressionDTO();
     
     CompareConditionExpression copmareCdt=new CompareConditionExpression();
     copmareCdt.setFeatureName("order_item_id");
     copmareCdt.setValue("1");
 	
 	for(String opr: operators) {
 		
 		
 		switch(opr) {
 		
 		case "=":	copmareCdt.setComparatorType(ComparatorType.EQ);
 			break;
 		case ">":	copmareCdt.setComparatorType(ComparatorType.GT);
 			break;
 		case "<":	copmareCdt.setComparatorType(ComparatorType.LT);
 			break;
 		case "<=":	copmareCdt.setComparatorType(ComparatorType.LTE);
 			break;
 		case ">=":	copmareCdt.setComparatorType(ComparatorType.GTE);
 			break;
 		case "<>":	copmareCdt.setComparatorType(ComparatorType.NEQ);
 			break;
 			
 		}
 		
 		expDto.setConditionExpression(copmareCdt);  
      queryDto.setConditionExpressions(Arrays.asList(expDto));
      queryDto.setSource("ecommerce");
 		
 		expectedQuery="select * from ecommerce where order_item_id "+opr+" 1";
 		
 		
      
     
     
      String retVal="";

FlairQuery query = new FlairQuery(queryDto.interpret(), queryDto.isMetaRetrieved());

      FlairFactory flairFactory = queryAbstractFactory.getQueryFactory(connection.getConnectionType().getBundleClass());
      
      FlairCompiler compiler = flairFactory.getCompiler();

      QueryExecutor executor = flairFactory.getExecutor(connection);

      StringWriter writer = new StringWriter();

      try {
          compiler.compile(query, writer);
      } catch (CompilationException e) {
          e.printStackTrace();
      }
  
      log.info("Expected Query : {}",expectedQuery);
      log.info("Genrated Query : {}",writer.toString());
      
      assertThat(expectedQuery).isEqualToIgnoringCase(writer.toString());
 		
 	}
 	
 	
     
  //   retVal = queryService.executeQuery(connection, query);
     

 }
 
Example 10
Source File: AthenaQueryTest.java    From flair-engine with Apache License 2.0 2 votes vote down vote up
@Test
@Transactional
public void betweenOperatorTest() throws Exception {


    String expectedQuery="";

    // Create Query
    QueryDTO queryDto = new QueryDTO();

    queryDto.setFields(Arrays.asList(new FieldDTO("*")));
    ConditionExpressionDTO expDto=new ConditionExpressionDTO();

    BetweenConditionExpression copmareCdt1=new BetweenConditionExpression();
    copmareCdt1.setFeatureName("product_price");
    copmareCdt1.setValue("500");
    copmareCdt1.setSecondValue("1000");

    expDto.setConditionExpression(copmareCdt1);
    queryDto.setConditionExpressions(Arrays.asList(expDto));
    queryDto.setSource("ecommerce");

    expectedQuery="select * from ecommerce where product_price between 500 AND 1000";

    FlairQuery query = new FlairQuery(queryDto.interpret(), queryDto.isMetaRetrieved());

    FlairFactory flairFactory = queryAbstractFactory.getQueryFactory(connection.getConnectionType().getBundleClass());

    FlairCompiler compiler = flairFactory.getCompiler();

    QueryExecutor executor = flairFactory.getExecutor(connection);

    StringWriter writer = new StringWriter();

    try {
        compiler.compile(query, writer);
    } catch (CompilationException e) {
        e.printStackTrace();
    }

    log.info("Expected Query : {}",expectedQuery);
    log.info("Genrated Query : {}",writer.toString());

    assertThat(expectedQuery).isEqualToIgnoringCase(writer.toString());

}
 
Example 11
Source File: AthenaQueryTest.java    From flair-engine with Apache License 2.0 2 votes vote down vote up
@Test
@Transactional
public void orOperatorTest() throws Exception {


    List<String> operators=Arrays.asList("=",">","<","<=",">=","<>");

    String expectedQuery="";

    // Create Query
    QueryDTO queryDto = new QueryDTO();

    queryDto.setFields(Arrays.asList(new FieldDTO("*")));
    ConditionExpressionDTO expDto=new ConditionExpressionDTO();

    CompareConditionExpression copmareCdt1=new CompareConditionExpression();
    copmareCdt1.setFeatureName("product_price");
    copmareCdt1.setValue("500");
    copmareCdt1.setComparatorType(CompareConditionExpression.ComparatorType.GTE);

    CompareConditionExpression copmareCdt2=new CompareConditionExpression();
    copmareCdt2.setFeatureName("product_name");
    copmareCdt2.setValue("Team Golf New England Patriots Putter Grip");
    copmareCdt2.setComparatorType(CompareConditionExpression.ComparatorType.EQ);

    OrConditionExpression orCdt=new OrConditionExpression();
    orCdt.setFirstExpression(copmareCdt1);
    orCdt.setSecondExpression(copmareCdt2);

    expDto.setConditionExpression(orCdt);
    queryDto.setConditionExpressions(Arrays.asList(expDto));
    queryDto.setSource("ecommerce");

    expectedQuery="select * from ecommerce where product_price >= 500 or product_name = 'Team Golf New England Patriots Putter Grip'";

    FlairQuery query = new FlairQuery(queryDto.interpret(), queryDto.isMetaRetrieved());

    FlairFactory flairFactory = queryAbstractFactory.getQueryFactory(connection.getConnectionType().getBundleClass());

    FlairCompiler compiler = flairFactory.getCompiler();

    QueryExecutor executor = flairFactory.getExecutor(connection);

    StringWriter writer = new StringWriter();

    try {
        compiler.compile(query, writer);
    } catch (CompilationException e) {
        e.printStackTrace();
    }

    log.info("Expected Query : {}",expectedQuery);
    log.info("Genrated Query : {}",writer.toString());

    assertThat(expectedQuery).isEqualToIgnoringCase(writer.toString());

}
 
Example 12
Source File: PostgresQueryTest.java    From flair-engine with Apache License 2.0 2 votes vote down vote up
@Test
  @Transactional
  public void inOperatorTest() throws Exception {
  	
  	List<String> values=Arrays.asList("PENDING","PENDING_PAYMENT","COMPLETE");
  	
  	String expectedQuery="select * from ecommerce where order_status in ('PENDING')";
      // Create Query
      QueryDTO queryDto = new QueryDTO();
     
      
      queryDto.setFields(Arrays.asList(new FieldDTO("*")));
      ConditionExpressionDTO expDto=new ConditionExpressionDTO();
      
      ContainsConditionExpression containCdt=new ContainsConditionExpression();
      containCdt.setFeatureName("order_status");
      
      containCdt.setValues(Arrays.asList("PENDING"));
      
      expDto.setConditionExpression(containCdt);
      
      queryDto.setConditionExpressions(Arrays.asList(expDto));
      
      queryDto.setSource("ecommerce");
      
      Connection connection = connectionRepository.findByLinkId(POSTGRE_ID);


FlairQuery query = new FlairQuery(queryDto.interpret(), queryDto.isMetaRetrieved());

      FlairFactory flairFactory = queryAbstractFactory.getQueryFactory(connection.getConnectionType().getBundleClass());
      
      FlairCompiler compiler = flairFactory.getCompiler();

      QueryExecutor executor = flairFactory.getExecutor(connection);

      StringWriter writer = new StringWriter();

      try {
          compiler.compile(query, writer);
      } catch (CompilationException e) {
          e.printStackTrace();
      }
  
      log.info("Expected Query : {}",expectedQuery);
      log.info("Genrated Query : {}",writer.toString());
      
      assertThat(expectedQuery).isEqualToIgnoringCase(writer.toString());
      
   //   retVal = queryService.executeQuery(connection, query);
      

  }
 
Example 13
Source File: PostgresQueryTest.java    From flair-engine with Apache License 2.0 2 votes vote down vote up
@Test
  @Transactional
  public void orOperatorTest() throws Exception {
  	
  	
  	List<String> operators=Arrays.asList("=",">","<","<=",">=","<>");
  	
  	String expectedQuery="";
  	
  	// Create Query
      QueryDTO queryDto = new QueryDTO();
     
      queryDto.setFields(Arrays.asList(new FieldDTO("*")));
      ConditionExpressionDTO expDto=new ConditionExpressionDTO();
      
      CompareConditionExpression copmareCdt1=new CompareConditionExpression();
      copmareCdt1.setFeatureName("product_price");
      copmareCdt1.setValue("500");
      copmareCdt1.setComparatorType(ComparatorType.GTE);
      
      CompareConditionExpression copmareCdt2=new CompareConditionExpression();
      copmareCdt2.setFeatureName("product_name");
      copmareCdt2.setValue("Team Golf New England Patriots Putter Grip");
      copmareCdt2.setComparatorType(ComparatorType.EQ);
      
      OrConditionExpression orCdt=new OrConditionExpression();
      orCdt.setFirstExpression(copmareCdt1);
      orCdt.setSecondExpression(copmareCdt2);
      
  	expDto.setConditionExpression(orCdt);  
   queryDto.setConditionExpressions(Arrays.asList(expDto));
   queryDto.setSource("ecommerce");
  		
  	expectedQuery="select * from ecommerce where product_price >= 500 or product_name = 'Team Golf New England Patriots Putter Grip'";

FlairQuery query = new FlairQuery(queryDto.interpret(), queryDto.isMetaRetrieved());

      FlairFactory flairFactory = queryAbstractFactory.getQueryFactory(connection.getConnectionType().getBundleClass());
      
      FlairCompiler compiler = flairFactory.getCompiler();

      QueryExecutor executor = flairFactory.getExecutor(connection);

      StringWriter writer = new StringWriter();

      try {
          compiler.compile(query, writer);
      } catch (CompilationException e) {
          e.printStackTrace();
      }
  
      log.info("Expected Query : {}",expectedQuery);
      log.info("Genrated Query : {}",writer.toString());
      
      assertThat(expectedQuery).isEqualToIgnoringCase(writer.toString());
  		
  }
 
Example 14
Source File: RedshiftQueryTest.java    From flair-engine with Apache License 2.0 2 votes vote down vote up
@Test
@Transactional
public void andOperatorTest() throws Exception {


    List<String> operators=Arrays.asList("=",">","<","<=",">=","<>");

    String expectedQuery="";

    // Create Query
    QueryDTO queryDto = new QueryDTO();

    queryDto.setFields(Arrays.asList(new FieldDTO("*")));
    ConditionExpressionDTO expDto=new ConditionExpressionDTO();

    CompareConditionExpression copmareCdt1=new CompareConditionExpression();
    copmareCdt1.setFeatureName("product_price");
    copmareCdt1.setValue("500");
    copmareCdt1.setComparatorType(CompareConditionExpression.ComparatorType.GTE);

    CompareConditionExpression copmareCdt2=new CompareConditionExpression();
    copmareCdt2.setFeatureName("product_name");
    copmareCdt2.setValue("Team Golf New England Patriots Putter Grip");
    copmareCdt2.setComparatorType(CompareConditionExpression.ComparatorType.EQ);

    AndConditionExpression andCdt=new AndConditionExpression();
    andCdt.setFirstExpression(copmareCdt1);
    andCdt.setSecondExpression(copmareCdt2);

    expDto.setConditionExpression(andCdt);
    queryDto.setConditionExpressions(Arrays.asList(expDto));
    queryDto.setSource("ecommerce");

    expectedQuery="select * from ecommerce where product_price >= 500 and product_name = 'Team Golf New England Patriots Putter Grip'";

    FlairQuery query = new FlairQuery(queryDto.interpret(), queryDto.isMetaRetrieved());

    FlairFactory flairFactory = queryAbstractFactory.getQueryFactory(connection.getConnectionType().getBundleClass());

    FlairCompiler compiler = flairFactory.getCompiler();

    QueryExecutor executor = flairFactory.getExecutor(connection);

    StringWriter writer = new StringWriter();

    try {
        compiler.compile(query, writer);
    } catch (CompilationException e) {
        e.printStackTrace();
    }

    log.info("Expected Query : {}",expectedQuery);
    log.info("Genrated Query : {}",writer.toString());

    assertThat(expectedQuery).isEqualToIgnoringCase(writer.toString());

}
 
Example 15
Source File: RedshiftQueryTest.java    From flair-engine with Apache License 2.0 2 votes vote down vote up
@Test
@Transactional
public void orOperatorTest() throws Exception {


    List<String> operators=Arrays.asList("=",">","<","<=",">=","<>");

    String expectedQuery="";

    // Create Query
    QueryDTO queryDto = new QueryDTO();

    queryDto.setFields(Arrays.asList(new FieldDTO("*")));
    ConditionExpressionDTO expDto=new ConditionExpressionDTO();

    CompareConditionExpression copmareCdt1=new CompareConditionExpression();
    copmareCdt1.setFeatureName("product_price");
    copmareCdt1.setValue("500");
    copmareCdt1.setComparatorType(CompareConditionExpression.ComparatorType.GTE);

    CompareConditionExpression copmareCdt2=new CompareConditionExpression();
    copmareCdt2.setFeatureName("product_name");
    copmareCdt2.setValue("Team Golf New England Patriots Putter Grip");
    copmareCdt2.setComparatorType(CompareConditionExpression.ComparatorType.EQ);

    OrConditionExpression orCdt=new OrConditionExpression();
    orCdt.setFirstExpression(copmareCdt1);
    orCdt.setSecondExpression(copmareCdt2);

    expDto.setConditionExpression(orCdt);
    queryDto.setConditionExpressions(Arrays.asList(expDto));
    queryDto.setSource("ecommerce");

    expectedQuery="select * from ecommerce where product_price >= 500 or product_name = 'Team Golf New England Patriots Putter Grip'";

    FlairQuery query = new FlairQuery(queryDto.interpret(), queryDto.isMetaRetrieved());

    FlairFactory flairFactory = queryAbstractFactory.getQueryFactory(connection.getConnectionType().getBundleClass());

    FlairCompiler compiler = flairFactory.getCompiler();

    QueryExecutor executor = flairFactory.getExecutor(connection);

    StringWriter writer = new StringWriter();

    try {
        compiler.compile(query, writer);
    } catch (CompilationException e) {
        e.printStackTrace();
    }

    log.info("Expected Query : {}",expectedQuery);
    log.info("Genrated Query : {}",writer.toString());

    assertThat(expectedQuery).isEqualToIgnoringCase(writer.toString());

}
 
Example 16
Source File: OracleQueryTest.java    From flair-engine with Apache License 2.0 2 votes vote down vote up
@Test
  @Transactional
  public void dateFunctionTest() throws Exception {
  	
  	
  	String expectedQuery="";
  	
  	// Create Query
      QueryDTO queryDto = new QueryDTO();
     
      queryDto.setFields(Arrays.asList(
      		new FieldDTO("order_date", "month", "month"),
		new FieldDTO("order_date", "hour", "hr"),
		new FieldDTO("order_date", "quarter", "qt"),
		new FieldDTO("order_date", "yearMonth", "ym"),
		new FieldDTO("order_date", "yearWeek", "yw"),
		new FieldDTO("order_date", "yearQuarter", "yq")
));
     
   queryDto.setSource("ecommerce");
  		
  	expectedQuery="SELECT EXTRACT(month FROM order_date) as month, EXTRACT(hour FROM order_date) as hr, to_char(order_date,'Q') as qt, to_char(order_date,'YYYY-MM') as ym, to_char(order_date,'YYYY-WW') as yw, to_char(order_date,'YYYY-Q') as yq FROM ecommerce";

FlairQuery query = new FlairQuery(queryDto.interpret(), queryDto.isMetaRetrieved());

      FlairFactory flairFactory = queryAbstractFactory.getQueryFactory(connection.getConnectionType().getBundleClass());
      
      FlairCompiler compiler = flairFactory.getCompiler();

      QueryExecutor executor = flairFactory.getExecutor(connection);

      StringWriter writer = new StringWriter();

      try {
          compiler.compile(query, writer);
      } catch (CompilationException e) {
          e.printStackTrace();
      }
  
      log.info("Expected Query : {}",expectedQuery);
      log.info("Genrated Query : {}",writer.toString());
      
      assertThat(expectedQuery).isEqualToIgnoringCase(writer.toString());
  		
  }
 
Example 17
Source File: MongoDBQueryTest.java    From flair-engine with Apache License 2.0 2 votes vote down vote up
@Test
@Transactional
public void betweenOperatorTest() throws Exception {


    String expectedQuery = "";

    // Create Query
    QueryDTO queryDto = new QueryDTO();

    queryDto.setFields(Arrays.asList(new FieldDTO("*")));
    ConditionExpressionDTO expDto = new ConditionExpressionDTO();

    BetweenConditionExpression copmareCdt1 = new BetweenConditionExpression();
    copmareCdt1.setFeatureName("product_price");
    copmareCdt1.setValue("500");
    copmareCdt1.setSecondValue("1000");

    expDto.setConditionExpression(copmareCdt1);
    queryDto.setConditionExpressions(Arrays.asList(expDto));
    queryDto.setSource("ecommerce");

    expectedQuery = "ecommerce.aggregate([{$match:{product_price:{$gte:500,$lte:1000}}}])";

    FlairQuery query = new FlairQuery(queryDto.interpret(), queryDto.isMetaRetrieved());

    FlairFactory flairFactory = queryAbstractFactory.getQueryFactory(connection.getConnectionType().getBundleClass());

    FlairCompiler compiler = flairFactory.getCompiler();

    QueryExecutor executor = flairFactory.getExecutor(connection);

    StringWriter writer = new StringWriter();

    try {
        compiler.compile(query, writer);
    } catch (CompilationException e) {
        e.printStackTrace();
    }

    log.info("Expected Query : {}", expectedQuery);
    log.info("Genrated Query : {}", writer.toString());

    assertThat(expectedQuery).isEqualToIgnoringCase(writer.toString());

}
 
Example 18
Source File: AthenaQueryTest.java    From flair-engine with Apache License 2.0 2 votes vote down vote up
@Test
@Transactional
public void likeOperatorTest() throws Exception {


    String expectedQuery="";

    // Create Query
    QueryDTO queryDto = new QueryDTO();

    queryDto.setFields(Arrays.asList(new FieldDTO("*")));
    ConditionExpressionDTO expDto=new ConditionExpressionDTO();

    LikeConditionExpression likeCdt=new LikeConditionExpression();
    likeCdt.setFeatureName("product_name");
    likeCdt.setValue("no");

    expDto.setConditionExpression(likeCdt);
    queryDto.setConditionExpressions(Arrays.asList(expDto));
    queryDto.setSource("ecommerce");

    expectedQuery="select * from ecommerce where product_name LIKE '%no%'";

    FlairQuery query = new FlairQuery(queryDto.interpret(), queryDto.isMetaRetrieved());

    FlairFactory flairFactory = queryAbstractFactory.getQueryFactory(connection.getConnectionType().getBundleClass());

    FlairCompiler compiler = flairFactory.getCompiler();

    QueryExecutor executor = flairFactory.getExecutor(connection);

    StringWriter writer = new StringWriter();

    try {
        compiler.compile(query, writer);
    } catch (CompilationException e) {
        e.printStackTrace();
    }

    log.info("Expected Query : {}",expectedQuery);
    log.info("Genrated Query : {}",writer.toString());

    assertThat(expectedQuery).isEqualToIgnoringCase(writer.toString());

}
 
Example 19
Source File: MongoDBQueryTest.java    From flair-engine with Apache License 2.0 2 votes vote down vote up
@Test
@Transactional
public void orOperatorTest() throws Exception {


    List<String> operators = Arrays.asList("=", ">", "<", "<=", ">=", "<>");

    String expectedQuery = "";

    // Create Query
    QueryDTO queryDto = new QueryDTO();

    queryDto.setFields(Arrays.asList(new FieldDTO("*")));
    ConditionExpressionDTO expDto = new ConditionExpressionDTO();

    CompareConditionExpression copmareCdt1 = new CompareConditionExpression();
    copmareCdt1.setFeatureName("product_price");
    copmareCdt1.setValue("500");
    copmareCdt1.setComparatorType(ComparatorType.GTE);

    CompareConditionExpression copmareCdt2 = new CompareConditionExpression();
    copmareCdt2.setFeatureName("product_name");
    copmareCdt2.setValue("Team Golf New England Patriots Putter Grip");
    copmareCdt2.setComparatorType(ComparatorType.EQ);

    OrConditionExpression orCdt = new OrConditionExpression();
    orCdt.setFirstExpression(copmareCdt1);
    orCdt.setSecondExpression(copmareCdt2);

    expDto.setConditionExpression(orCdt);
    queryDto.setConditionExpressions(Arrays.asList(expDto));
    queryDto.setSource("ecommerce");

    expectedQuery = "ecommerce.aggregate([{$match:{$or:[{product_price:{$gte:500}},{product_name:'Team Golf New England Patriots Putter Grip'}]}}])";

    FlairQuery query = new FlairQuery(queryDto.interpret(), queryDto.isMetaRetrieved());

    FlairFactory flairFactory = queryAbstractFactory.getQueryFactory(connection.getConnectionType().getBundleClass());

    FlairCompiler compiler = flairFactory.getCompiler();

    QueryExecutor executor = flairFactory.getExecutor(connection);

    StringWriter writer = new StringWriter();

    try {
        compiler.compile(query, writer);
    } catch (CompilationException e) {
        e.printStackTrace();
    }

    log.info("Expected Query : {}", expectedQuery);
    log.info("Genrated Query : {}", writer.toString());

    assertThat(expectedQuery).isEqualToIgnoringCase(writer.toString());

}
 
Example 20
Source File: OracleQueryTest.java    From flair-engine with Apache License 2.0 2 votes vote down vote up
@Test
  @Transactional
  public void mathFunctionTest() throws Exception {
  	
  	
  	String expectedQuery="";
  	
  	// Create Query
      QueryDTO queryDto = new QueryDTO();
     
      queryDto.setFields(Arrays.asList(
      		new FieldDTO("*", "count"),
		new FieldDTO("order_item_product_price", "min"),
		new FieldDTO("order_item_product_price", "max"),
		new FieldDTO("order_item_product_price", "sum")
));
     
   queryDto.setSource("ecommerce");
  		
  	expectedQuery="SELECT count(*), min(order_item_product_price), max(order_item_product_price), sum(order_item_product_price) FROM ecommerce";

FlairQuery query = new FlairQuery(queryDto.interpret(), queryDto.isMetaRetrieved());

      FlairFactory flairFactory = queryAbstractFactory.getQueryFactory(connection.getConnectionType().getBundleClass());
      
      FlairCompiler compiler = flairFactory.getCompiler();

      QueryExecutor executor = flairFactory.getExecutor(connection);

      StringWriter writer = new StringWriter();

      try {
          compiler.compile(query, writer);
      } catch (CompilationException e) {
          e.printStackTrace();
      }
  
      log.info("Expected Query : {}",expectedQuery);
      log.info("Genrated Query : {}",writer.toString());
      
      
      assertThat(expectedQuery).isEqualToIgnoringCase(writer.toString());
  		
  }