Skip to content

Commit

Permalink
chore: re-apply custom-jhlite module to get npm/maven version readers
Browse files Browse the repository at this point in the history
  • Loading branch information
murdos committed Sep 18, 2024
1 parent b1bda58 commit f065324
Show file tree
Hide file tree
Showing 10 changed files with 229 additions and 2 deletions.
9 changes: 8 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,12 @@
<classifier>tests</classifier>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.approvaltests</groupId>
<artifactId>approvaltests</artifactId>
<version>${approvaltests.version}</version>
<scope>test</scope>
</dependency>
</dependencies>

<properties>
Expand All @@ -95,11 +101,12 @@
<failsafe-plugin.version>3.5.0</failsafe-plugin.version>
<spring-boot.version>3.3.3</spring-boot.version>
<cucumber.version>7.18.1</cucumber.version>
<jhlite.version>1.18.1</jhlite.version>
<jhlite.version>1.19.0</jhlite.version>
<maven-checkstyle-plugin.version>3.5.0</maven-checkstyle-plugin.version>
<jacoco.version>0.8.12</jacoco.version>
<properties-maven-plugin.version>1.2.1</properties-maven-plugin.version>
<sonar-maven-plugin.version>4.0.0.4121</sonar-maven-plugin.version>
<approvaltests.version>24.4.0</approvaltests.version>
</properties>

<build>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package tech.jhipster.lite.extension.shared.dependencies.domain;

import tech.jhipster.lite.module.domain.npm.NpmVersionSource;
import tech.jhipster.lite.module.domain.npm.NpmVersionSourceFactory;

public enum JhliteExtensionSampleNpmVersionSource implements NpmVersionSourceFactory {
JHLITE_EXTENSION_SAMPLE("jhlite-extension-sample");

private final String source;

JhliteExtensionSampleNpmVersionSource(String source) {
this.source = source;
}

@Override
public NpmVersionSource build() {
return new NpmVersionSource(source);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package tech.jhipster.lite.extension.shared.dependencies.infrastructure.secondary;

import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Repository;
import tech.jhipster.lite.module.domain.ProjectFiles;
import tech.jhipster.lite.module.domain.javadependency.JavaDependenciesVersions;
import tech.jhipster.lite.module.infrastructure.secondary.javadependency.FileSystemMavenDependenciesReader;
import tech.jhipster.lite.module.infrastructure.secondary.javadependency.JavaDependenciesReader;

@Repository
@Order(Ordered.HIGHEST_PRECEDENCE)
public class JhliteExtensionSampleMavenDependenciesReader implements JavaDependenciesReader {

private static final String CURRENT_VERSIONS_FILE = "/generator/jhlite-extension-sample-dependencies/pom.xml";

private final FileSystemMavenDependenciesReader reader;

public JhliteExtensionSampleMavenDependenciesReader(ProjectFiles files) {
this.reader = new FileSystemMavenDependenciesReader(files, CURRENT_VERSIONS_FILE);
}

@Override
public JavaDependenciesVersions get() {
return reader.get();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package tech.jhipster.lite.extension.shared.dependencies.infrastructure.secondary;

import java.util.List;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Repository;
import tech.jhipster.lite.extension.shared.dependencies.domain.JhliteExtensionSampleNpmVersionSource;
import tech.jhipster.lite.module.domain.ProjectFiles;
import tech.jhipster.lite.module.domain.npm.NpmPackagesVersions;
import tech.jhipster.lite.module.infrastructure.secondary.npm.FileSystemNpmVersionReader;
import tech.jhipster.lite.module.infrastructure.secondary.npm.NpmVersionsReader;

@Repository
@Order(Ordered.HIGHEST_PRECEDENCE)
public class JhliteExtensionSampleNpmVersionReader implements NpmVersionsReader {

private static final String PARENT_FOLDER = "/generator/jhlite-extension-sample-dependencies/";

private final FileSystemNpmVersionReader reader;

public JhliteExtensionSampleNpmVersionReader(ProjectFiles projectFiles) {
reader = new FileSystemNpmVersionReader(projectFiles, List.of(JhliteExtensionSampleNpmVersionSource.values()), PARENT_FOLDER);
}

@Override
public NpmPackagesVersions get() {
return reader.get();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
@tech.jhipster.lite.extension.SharedKernel
package tech.jhipster.lite.extension.shared.dependencies;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"dependencies": {
"prettier-plugin-properties": "0.3.0"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8" ?>
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>4.0.0</modelVersion>

<artifactId>jhlite-extension-sample-dependencies</artifactId>
<version>0.0.7-SNAPSHOT</version>
<name>JHLite Extension Sample dependencies</name>
<description>JHLite Extension Sample dependencies list</description>
<packaging>pom</packaging>

<properties>
<!-- Version slugs of dependencies added by jhipster-lite modules should be declared here -->
</properties>

<dependencyManagement>
<dependencies>
<!-- Dependencies that will be added by jhipster-lite modules should be declared here -->
</dependencies>
</dependencyManagement>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@
@ComponentTest
@IncludeEngines("cucumber")
@SuppressWarnings("java:S2187")
@ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "tech.jhipster.lite.extension, tech.jhipster.lite.module.infrastructure.primary")
@ConfigurationParameter(
key = GLUE_PROPERTY_NAME,
value = "tech.jhipster.lite.extension, tech.jhipster.lite.module.infrastructure.primary, tech.jhipster.lite.project.infrastructure.primary"
)
@ConfigurationParameter(
key = PLUGIN_PROPERTY_NAME,
value = "pretty, json:target/cucumber/cucumber.json, html:target/cucumber/cucumber.htm, junit:target/cucumber/TEST-cucumber.xml"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package tech.jhipster.lite.extension.shared.dependencies.infrastructure.secondary;

import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.when;

import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import tech.jhipster.lite.extension.UnitTest;
import tech.jhipster.lite.module.domain.ProjectFiles;
import tech.jhipster.lite.module.domain.javabuild.VersionSlug;
import tech.jhipster.lite.module.domain.javadependency.JavaDependencyVersion;
import tech.jhipster.lite.module.domain.javadependency.Version;

@UnitTest
@ExtendWith(MockitoExtension.class)
class JhliteExtensionSampleMavenDependenciesReaderTest {

@Mock
private ProjectFiles projectFiles;

@InjectMocks
private JhliteExtensionSampleMavenDependenciesReader reader;

@Test
void shouldGetVersionFromCustomSource() {
mockProjectFiles();

JavaDependencyVersion version = reader.get().get(new VersionSlug("jacoco"));

assertThat(version.version()).isEqualTo(new Version("0.8.12"));
}

private void mockProjectFiles() {
when(projectFiles.readString(anyString())).thenReturn(
"""
<?xml version="1.0" encoding="UTF-8" ?>
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<properties>
<jacoco.version>0.8.12</jacoco.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
"""
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package tech.jhipster.lite.extension.shared.dependencies.infrastructure.secondary;

import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.when;
import static tech.jhipster.lite.extension.shared.dependencies.domain.JhliteExtensionSampleNpmVersionSource.JHLITE_EXTENSION_SAMPLE;

import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import tech.jhipster.lite.extension.UnitTest;
import tech.jhipster.lite.module.domain.ProjectFiles;
import tech.jhipster.lite.module.domain.npm.NpmPackageName;
import tech.jhipster.lite.module.domain.npm.NpmPackageVersion;

@UnitTest
@ExtendWith(MockitoExtension.class)
class JhliteExtensionSampleNpmVersionReaderTest {

@Mock
private ProjectFiles projectFiles;

@InjectMocks
private JhliteExtensionSampleNpmVersionReader reader;

@Test
void shouldGetVersionFromCustomSource() {
mockProjectFiles();

NpmPackageVersion version = reader.get().get(new NpmPackageName("vue"), JHLITE_EXTENSION_SAMPLE.build());

assertThat(version).isEqualTo(new NpmPackageVersion("1.2.3"));
}

private void mockProjectFiles() {
when(projectFiles.readString(anyString())).thenReturn(
"""
{
"dependencies": {
"vue": "1.2.3"
},
}
"""
);
}
}

0 comments on commit f065324

Please sign in to comment.