MetadataTest.java 4.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package com.baomidou.mybatisplus.starter;
  2. import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration;
  3. import com.baomidou.mybatisplus.autoconfigure.MybatisPlusProperties;
  4. import com.baomidou.mybatisplus.core.MybatisConfiguration;
  5. import com.baomidou.mybatisplus.core.config.GlobalConfig;
  6. import com.jayway.jsonpath.DocumentContext;
  7. import com.jayway.jsonpath.JsonPath;
  8. import lombok.AllArgsConstructor;
  9. import lombok.Data;
  10. import org.apache.ibatis.session.SqlSessionFactory;
  11. import org.apache.ibatis.type.JdbcType;
  12. import org.junit.jupiter.api.Assertions;
  13. import org.junit.jupiter.api.Test;
  14. import org.mybatis.spring.SqlSessionFactoryBean;
  15. import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
  16. import org.springframework.core.io.FileSystemResource;
  17. import javax.sql.DataSource;
  18. import java.io.IOException;
  19. import java.util.List;
  20. import java.util.Map;
  21. import java.util.Properties;
  22. import java.util.stream.Collectors;
  23. /**
  24. * 检查元数据生成
  25. *
  26. * @author nieqiurong 2019/2/9.
  27. */
  28. class MetadataTest {
  29. @Data
  30. @AllArgsConstructor
  31. private static class Metadata {
  32. private String name;
  33. private String type;
  34. private String sourceType;
  35. }
  36. @Test
  37. void checkSpringAutoconfigureMetadataProperties() throws IOException {
  38. Properties properties = new Properties();
  39. properties.load(new FileSystemResource("build/classes/java/main/META-INF/spring-autoconfigure-metadata.properties").getInputStream());
  40. Assertions.assertEquals(DataSourceAutoConfiguration.class.getName(), properties.getProperty(MybatisPlusAutoConfiguration.class.getName() + ".AutoConfigureAfter"));
  41. Assertions.assertEquals(DataSource.class.getName(), properties.getProperty(MybatisPlusAutoConfiguration.class.getName() + ".ConditionalOnSingleCandidate"));
  42. Assertions.assertEquals(SqlSessionFactory.class.getName() + "," + SqlSessionFactoryBean.class.getName(), properties.getProperty(MybatisPlusAutoConfiguration.class.getName() + ".ConditionalOnClass"));
  43. }
  44. @Test
  45. void checkSpringConfigurationMetadataJson() throws IOException {
  46. DocumentContext documentContext = JsonPath.parse(new FileSystemResource("build/classes/java/main/META-INF/spring-configuration-metadata.json").getInputStream());
  47. List<Map<String, String>> properties = documentContext.read("$.properties");
  48. Map<String, Metadata> metadataMap = properties.stream().map(map -> new Metadata(map.get("name"), map.get("type"), map.get("sourceType"))).collect(Collectors.toMap(Metadata::getName, metadata -> metadata));
  49. Assertions.assertEquals(metadataMap.get("mybatis-plus.type-enums-package"), new Metadata("mybatis-plus.type-enums-package", String.class.getName(), MybatisPlusProperties.class.getName()));
  50. Assertions.assertEquals(metadataMap.get("mybatis-plus.type-aliases-package"), new Metadata("mybatis-plus.type-aliases-package", String.class.getName(), MybatisPlusProperties.class.getName()));
  51. Assertions.assertEquals(metadataMap.get("mybatis-plus.global-config.sql-parser-cache"), new Metadata("mybatis-plus.global-config.sql-parser-cache", Boolean.class.getName(), GlobalConfig.class.getName()));
  52. Assertions.assertEquals(metadataMap.get("mybatis-plus.global-config.db-config.table-underline"), new Metadata("mybatis-plus.global-config.db-config.table-underline", Boolean.class.getName(), GlobalConfig.DbConfig.class.getName()));
  53. Assertions.assertEquals(metadataMap.get("mybatis-plus.config-location"), new Metadata("mybatis-plus.config-location", String.class.getName(), MybatisPlusProperties.class.getName()));
  54. Assertions.assertEquals(metadataMap.get("mybatis-plus.configuration.call-setters-on-nulls"), new Metadata("mybatis-plus.configuration.call-setters-on-nulls", Boolean.class.getName(), MybatisConfiguration.class.getName()));
  55. Assertions.assertEquals(metadataMap.get("mybatis-plus.configuration.jdbc-type-for-null"), new Metadata("mybatis-plus.configuration.jdbc-type-for-null", JdbcType.class.getName(), MybatisConfiguration.class.getName()));
  56. Assertions.assertEquals(metadataMap.get("mybatis-plus.configuration.map-underscore-to-camel-case"), new Metadata("mybatis-plus.configuration.map-underscore-to-camel-case", Boolean.class.getName(), MybatisConfiguration.class.getName()));
  57. }
  58. }