TAddressMapperXmlTest.java 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package com.ylx.massage.mapper;
  2. import org.junit.jupiter.api.Test;
  3. import java.io.InputStream;
  4. import java.nio.charset.StandardCharsets;
  5. import static org.junit.jupiter.api.Assertions.assertFalse;
  6. import static org.junit.jupiter.api.Assertions.assertNotNull;
  7. import static org.junit.jupiter.api.Assertions.assertTrue;
  8. public class TAddressMapperXmlTest {
  9. @Test
  10. public void pcUserAddressListSqlOnlyQueriesByOpenId() throws Exception {
  11. String xml = readMapperXml();
  12. assertTrue(xml.contains("selectPcUserAddressList"));
  13. assertTrue(xml.contains("FROM t_address"));
  14. assertTrue(xml.contains("openid = #{openId}"));
  15. assertTrue(xml.contains("is_delete = 0"));
  16. assertTrue(xml.contains("user_type = 1"));
  17. assertTrue(xml.contains("type = 1"));
  18. assertTrue(xml.contains("ORDER BY is_default DESC, create_time DESC"));
  19. assertFalse(xml.contains("user_id = #{userId}"));
  20. }
  21. @Test
  22. public void addressResultMapUsesMerchantAddressColumns() throws Exception {
  23. String xml = readMapperXml();
  24. assertTrue(xml.contains("property=\"merchantId\" column=\"merchant_id\""));
  25. assertTrue(xml.contains("property=\"userType\" column=\"user_type\""));
  26. assertTrue(xml.contains("property=\"isDefault\" column=\"is_default\""));
  27. assertFalse(xml.contains("property=\"isDefault\" column=\"type\""));
  28. }
  29. @Test
  30. public void currentMerchantAddressOnlyQueriesRealMerchantAddress() throws Exception {
  31. String xml = readMapperXml();
  32. String selectSql = extractSelect(xml, "selectCurrentMerchantRealAddress");
  33. assertTrue(selectSql.contains("merchant_id = #{merchantId}"));
  34. assertTrue(selectSql.contains("user_type = 2"));
  35. assertTrue(selectSql.contains("type = 1"));
  36. assertTrue(selectSql.contains("is_delete = 0"));
  37. assertTrue(selectSql.contains("ORDER BY is_default DESC, create_time DESC"));
  38. assertTrue(selectSql.contains("LIMIT 1"));
  39. assertFalse(selectSql.contains("AND type = 2"));
  40. }
  41. private String readMapperXml() throws Exception {
  42. try (InputStream inputStream = getClass().getClassLoader()
  43. .getResourceAsStream("mapper/address/TAddressMapper.xml")) {
  44. assertNotNull(inputStream, "TAddressMapper.xml should exist in test classpath");
  45. byte[] bytes = new byte[inputStream.available()];
  46. inputStream.read(bytes);
  47. return new String(bytes, StandardCharsets.UTF_8);
  48. }
  49. }
  50. private String extractSelect(String xml, String selectId) {
  51. String startTag = "<select id=\"" + selectId + "\"";
  52. int start = xml.indexOf(startTag);
  53. assertTrue(start >= 0, selectId + " should exist");
  54. int end = xml.indexOf("</select>", start);
  55. assertTrue(end > start, selectId + " should have closing select tag");
  56. return xml.substring(start, end);
  57. }
  58. }