PosFoodMapperSqlTest.java 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package com.ruoyi.system.mapper;
  2. import org.apache.ibatis.mapping.BoundSql;
  3. import org.apache.ibatis.builder.xml.XMLMapperBuilder;
  4. import org.apache.ibatis.session.Configuration;
  5. import org.junit.jupiter.api.Test;
  6. import java.io.IOException;
  7. import java.io.InputStream;
  8. import java.util.HashMap;
  9. import java.util.List;
  10. import java.util.Locale;
  11. import java.util.Map;
  12. import static org.junit.jupiter.api.Assertions.assertTrue;
  13. import static org.junit.jupiter.api.Assertions.assertEquals;
  14. import static org.junit.jupiter.api.Assertions.assertNotNull;
  15. class PosFoodMapperSqlTest {
  16. @Test
  17. void storeCardFoodsExcludeOffShelfFoodsWithoutReducingAvailableLimit() {
  18. Configuration configuration = new Configuration();
  19. configuration.addMapper(PosFoodMapper.class);
  20. Map<String, Object> parameters = new HashMap<>();
  21. parameters.put("storeIds", List.of(10L));
  22. parameters.put("language", "3");
  23. parameters.put("limitPerStore", 6);
  24. BoundSql boundSql = configuration
  25. .getMappedStatement("com.ruoyi.system.mapper.PosFoodMapper.selectFoodsByStoreIdsWithLimit")
  26. .getBoundSql(parameters);
  27. String sql = boundSql.getSql().replaceAll("\\s+", " ").toUpperCase(Locale.ROOT);
  28. assertTrue(sql.contains("F.STACKING_UP <> '1'"));
  29. assertTrue(sql.contains("F2.STACKING_UP <> '1'"));
  30. }
  31. @Test
  32. void menuCopyUpdateOnlyChangesContentFields() throws IOException {
  33. Configuration configuration = new Configuration();
  34. configuration.getTypeAliasRegistry().registerAlias("PosFood", com.ruoyi.system.domain.PosFood.class);
  35. String resource = "mapper/chanting/PosFoodMapper.xml";
  36. try (InputStream input = getClass().getClassLoader().getResourceAsStream(resource)) {
  37. assertNotNull(input);
  38. new XMLMapperBuilder(input, configuration, resource, configuration.getSqlFragments()).parse();
  39. }
  40. BoundSql boundSql = configuration
  41. .getMappedStatement("com.ruoyi.system.mapper.PosFoodMapper.updateMenuCopyContent")
  42. .getBoundSql(new com.ruoyi.system.domain.PosFood());
  43. String sql = boundSql.getSql().replaceAll("\\s+", " ").trim().toUpperCase(Locale.ROOT);
  44. assertEquals("UPDATE POS_FOOD SET PRICE = ?, IMAGE = ?, INTRODUCE = ?, FOOD_SKU = ?, "
  45. + "RECOMMEND = ?, SORT = ? WHERE ID = ?", sql);
  46. }
  47. }