Skip to content

Commit b837ff3

Browse files
fix: Extension register
1 parent 8675d2c commit b837ff3

6 files changed

Lines changed: 60 additions & 3 deletions

File tree

build.gradle.kts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ dependencies {
1919

2020
compileOnly(gradleApi())
2121
testImplementation(gradleTestKit())
22+
23+
testImplementation("org.junit.jupiter:junit-jupiter-api:5.8.1")
24+
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.8.1")
2225
}
2326

2427
gradlePlugin {
@@ -34,6 +37,10 @@ gradlePlugin {
3437
}
3538
}
3639

40+
tasks.test {
41+
useJUnitPlatform()
42+
}
43+
3744
publishing {
3845
repositories {
3946
mavenLocal()

src/main/java/studio/o7/remora/RemoraPlugin.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public void apply(Project project) {
2525
applyNecessaryPlugins(logger, project);
2626
applyNecessaryRepositories(logger, project);
2727

28-
RemoraExtension extension = setupExtension(logger, project.getExtensions());
28+
RemoraExtension extension = setupExtension(logger, project);
2929

3030
applyNecessaryProjectConfiguration(logger, project, extension);
3131
applyJavaPluginConfiguration(logger, project, extension);
@@ -36,9 +36,9 @@ public void apply(Project project) {
3636
// applyPlaceholderConfiguration(logger, project, extension);
3737
}
3838

39-
public static RemoraExtension setupExtension(@NonNull Logger logger, @NonNull ExtensionContainer extensions) {
39+
public static RemoraExtension setupExtension(@NonNull Logger logger, @NonNull Project project) {
4040
logger.info("Setting up the `remora` extension");
41-
return extensions.create("remora", RemoraExtension.class);
41+
return project.getExtensions().create("remora", RemoraExtension.class, project.getObjects());
4242
}
4343

4444
public static void applyNecessaryProjectConfiguration(@NonNull Logger logger, @NonNull Project project, @NonNull RemoraExtension extension) {

src/main/java/studio/o7/remora/extensions/RemoraExtension.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import lombok.Getter;
44
import lombok.Setter;
5+
import org.gradle.api.Action;
56
import org.gradle.api.model.ObjectFactory;
67
import org.gradle.jvm.toolchain.JavaLanguageVersion;
78
import studio.o7.remora.extensions.framework.FrameworkExtension;
@@ -26,4 +27,8 @@ public class RemoraExtension {
2627
public RemoraExtension(ObjectFactory factory) {
2728
this.framework = factory.newInstance(FrameworkExtension.class);
2829
}
30+
31+
public void framework(Action<? super FrameworkExtension> action) {
32+
action.execute(this.framework);
33+
}
2934
}

src/main/java/studio/o7/remora/extensions/framework/FrameworkExtension.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import lombok.Getter;
44
import lombok.Setter;
5+
import org.gradle.api.Action;
56
import org.gradle.api.model.ObjectFactory;
67

78
import javax.inject.Inject;
@@ -15,4 +16,8 @@ public class FrameworkExtension {
1516
public FrameworkExtension(ObjectFactory factory) {
1617
lombok = factory.newInstance(LombokExtension.class);
1718
}
19+
20+
public void lombok(Action<? super LombokExtension> action) {
21+
action.execute(this.lombok);
22+
}
1823
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package studio.o7.remora;
2+
3+
4+
import static org.junit.jupiter.api.Assertions.*;
5+
6+
class RemoraPluginTest {
7+
8+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package studio.o7.remora.extensions;
2+
3+
import org.gradle.api.Project;
4+
import org.gradle.testfixtures.ProjectBuilder;
5+
import org.junit.jupiter.api.Test;
6+
import studio.o7.remora.RemoraPlugin;
7+
import studio.o7.remora.extensions.framework.FrameworkExtension;
8+
import studio.o7.remora.extensions.framework.LombokExtension;
9+
10+
import static org.junit.jupiter.api.Assertions.*;
11+
12+
class RemoraExtensionTest {
13+
14+
@Test
15+
public void testExtension() {
16+
Project project = ProjectBuilder.builder().build();
17+
project.getPlugins().apply(RemoraPlugin.class);
18+
19+
RemoraExtension extension = project.getExtensions().findByType(RemoraExtension.class);
20+
assertNotNull(extension);
21+
22+
FrameworkExtension framework = extension.getFramework();
23+
assertNotNull(framework);
24+
25+
LombokExtension lombok = framework.getLombok();
26+
assertNotNull(lombok);
27+
28+
String version = lombok.getVersion();
29+
assertNotNull(version);
30+
assertEquals("1.18.36", version);
31+
}
32+
}

0 commit comments

Comments
 (0)