Skip to content

Commit d2ce1b9

Browse files
authored
Fix main branch (#823)
* clean: Organize imports * clean: Remove dead code * fix: Add missing bean to ApplicationContext * refact: Remove unused member * - test: Fix test after refactoring * doc: Add copyright header
1 parent 2b34281 commit d2ce1b9

File tree

4 files changed

+78
-30
lines changed

4 files changed

+78
-30
lines changed

applications/spring-shell/src/test/java/org/springframework/sbm/shell/ScanShellCommandTest.java

-5
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,6 @@ void testScanWithFailingPreconditionChecksShouldPrintResult() {
9090

9191
String result = sut.scan(projectRoot);
9292

93-
verify(applicableRecipesListHolder).clear();
94-
verify(applicableRecipesListHolder, never()).setRecipes(any());
95-
9693
ArgumentCaptor<String> capturedOutput = ArgumentCaptor.forClass(String.class);
9794

9895
verify(consolePrinter).println(capturedOutput.capture());
@@ -134,8 +131,6 @@ void testScanWithSucceedingPreconditionChecksShouldPrintResultAndRenderApplicabl
134131

135132
String result = sut.scan(projectRoot);
136133

137-
verify(applicableRecipesListHolder).clear();
138-
verify(applicableRecipesListHolder).setRecipes(recipes);
139134
// list of recipes returned
140135
assertThat(result).isEqualTo("\u001B[91mThe applicable recipe\u001B[0m");
141136
// header and validation result rendered

components/sbm-core/src/main/java/org/springframework/sbm/engine/commands/ApplicableRecipeListCommand.java

+2-18
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,12 @@
1515
*/
1616
package org.springframework.sbm.engine.commands;
1717

18-
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
1918
import org.springframework.sbm.engine.context.ProjectContext;
20-
import org.springframework.sbm.engine.context.ProjectRootPathResolver;
19+
import org.springframework.sbm.engine.recipe.ApplicableRecipesListHolder;
2120
import org.springframework.sbm.engine.recipe.Recipe;
2221
import org.springframework.sbm.engine.recipe.Recipes;
2322
import org.springframework.sbm.engine.recipe.RecipesBuilder;
24-
import org.springframework.sbm.project.parser.ProjectContextInitializer;
2523
import org.springframework.sbm.scopes.ExecutionScope;
26-
import org.springframework.sbm.engine.recipe.ApplicableRecipesListHolder;
2724
import org.springframework.stereotype.Component;
2825

2926
import java.util.List;
@@ -32,22 +29,12 @@
3229
public class ApplicableRecipeListCommand extends AbstractCommand<List<Recipe>> {
3330

3431
private static final String COMMAND_NAME = "applicableRecipes";
35-
private final ProjectRootPathResolver projectRootPathResolver;
3632
private final RecipesBuilder recipesBuilder;
37-
private final ProjectContextInitializer projectContextBuilder;
38-
39-
private final ConfigurableListableBeanFactory beanFactory;
40-
41-
private final ExecutionScope executionScope;
4233
private final ApplicableRecipesListHolder applicableRecipesListHolder;
4334

44-
protected ApplicableRecipeListCommand(ProjectRootPathResolver projectRootPathResolver, RecipesBuilder recipesBuilder, ProjectContextInitializer projectContextBuilder, ConfigurableListableBeanFactory beanFactory, ExecutionScope executionScope, ApplicableRecipesListHolder applicableRecipesListHolder) {
35+
protected ApplicableRecipeListCommand(RecipesBuilder recipesBuilder, ExecutionScope executionScope, ApplicableRecipesListHolder applicableRecipesListHolder) {
4536
super(COMMAND_NAME);
46-
this.projectRootPathResolver = projectRootPathResolver;
4737
this.recipesBuilder = recipesBuilder;
48-
this.projectContextBuilder = projectContextBuilder;
49-
this.beanFactory = beanFactory;
50-
this.executionScope = executionScope;
5138
this.applicableRecipesListHolder = applicableRecipesListHolder;
5239
}
5340

@@ -67,10 +54,7 @@ private List<Recipe> getApplicableRecipes(ProjectContext context) {
6754
@Deprecated
6855
// FIXME: Refactor: inheriting AbstractCommand forces this method!
6956
public List<Recipe> execute(String... arguments) {
70-
// Path projectRoot = projectRootPathResolver.getProjectRootOrDefault(arguments[0]);
7157
// // FIXME: This call creates a new ProjectResourceSet which is not correct.
72-
// ProjectContext context = projectContextBuilder.initProjectContext(projectRoot, new RewriteExecutionContext());
73-
// return getApplicableRecipes(context);
7458
return null;
7559
}
7660
}

components/sbm-core/src/test/java/org/springframework/sbm/archfitfun/ExecutionScopeArchFitTest.java

+6-7
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,7 @@
2323
import org.openrewrite.maven.MavenSettings;
2424
import org.springframework.beans.factory.annotation.Autowired;
2525
import org.springframework.boot.test.context.SpringBootTest;
26-
import org.springframework.boot.test.context.TestConfiguration;
2726
import org.springframework.boot.test.mock.mockito.MockBean;
28-
import org.springframework.context.annotation.Bean;
29-
import org.springframework.context.annotation.Configuration;
30-
import org.springframework.context.annotation.Import;
3127
import org.springframework.sbm.build.impl.MavenSettingsInitializer;
3228
import org.springframework.sbm.build.impl.RewriteMavenArtifactDownloader;
3329
import org.springframework.sbm.build.impl.RewriteMavenParser;
@@ -45,7 +41,6 @@
4541
import org.springframework.sbm.java.impl.RewriteJavaParser;
4642
import org.springframework.sbm.java.refactoring.JavaRefactoringFactoryImpl;
4743
import org.springframework.sbm.java.util.BasePackageCalculator;
48-
import org.springframework.sbm.openrewrite.RewriteExecutionContext;
4944
import org.springframework.sbm.project.RewriteSourceFileWrapper;
5045
import org.springframework.sbm.project.parser.*;
5146
import org.springframework.sbm.project.resource.ProjectResourceSetHolder;
@@ -59,10 +54,13 @@
5954
import org.springframework.validation.beanvalidation.CustomValidatorBean;
6055

6156
import java.nio.file.Path;
62-
import java.util.*;
57+
import java.util.ArrayList;
58+
import java.util.HashMap;
59+
import java.util.List;
60+
import java.util.Map;
6361

6462
import static org.assertj.core.api.Assertions.assertThat;
65-
import static org.mockito.Mockito.*;
63+
import static org.mockito.Mockito.when;
6664
import static org.springframework.sbm.archfitfun.ExecutionScopeArchFitTest.ScopeCacheHelper.getCacheSnapshot;
6765

6866
/**
@@ -133,6 +131,7 @@
133131
CustomValidatorBean.class,
134132
ScopeConfiguration.class,
135133
ApplicableRecipeListCommand.class,
134+
ApplicableRecipesListHolder.class,
136135
SbmRecipeLoader.class,
137136
// SbmRecipeLoader.class,
138137
ExecutionScopeArchFitTestContext.class
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
/*
2+
* Copyright 2021 - 2022 the original author or authors.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* https://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
package org.springframework.sbm.engine.commands;
17+
18+
import org.junit.jupiter.api.DisplayName;
19+
import org.junit.jupiter.api.Test;
20+
import org.junit.jupiter.api.extension.ExtendWith;
21+
import org.mockito.InjectMocks;
22+
import org.mockito.Mock;
23+
import org.mockito.junit.jupiter.MockitoExtension;
24+
import org.springframework.sbm.engine.context.ProjectContext;
25+
import org.springframework.sbm.engine.context.ProjectRootPathResolver;
26+
import org.springframework.sbm.engine.recipe.ApplicableRecipesListHolder;
27+
import org.springframework.sbm.engine.recipe.Recipe;
28+
import org.springframework.sbm.engine.recipe.Recipes;
29+
import org.springframework.sbm.engine.recipe.RecipesBuilder;
30+
31+
import java.util.ArrayList;
32+
import java.util.List;
33+
34+
import static org.assertj.core.api.Assertions.assertThat;
35+
import static org.mockito.Mockito.*;
36+
37+
/**
38+
* @author Fabian Krüger
39+
*/
40+
@ExtendWith(MockitoExtension.class)
41+
class ApplicableRecipeListCommandTest {
42+
@Mock
43+
ProjectRootPathResolver projectRootPathResolver;
44+
45+
@Mock
46+
RecipesBuilder recipesBuilder;
47+
48+
@Mock
49+
ApplicableRecipesListHolder applicableRecipesListHolder;
50+
51+
@InjectMocks
52+
ApplicableRecipeListCommand sut;
53+
54+
@Test
55+
@DisplayName("Sequence of Calls")
56+
void sequenceOfCallsInExecute() {
57+
Recipes recipes = mock(Recipes.class);
58+
ProjectContext context = mock(ProjectContext.class);
59+
when(recipesBuilder.buildRecipes()).thenReturn(recipes);
60+
List<Recipe> applicableRecipes = new ArrayList<>();
61+
when(recipes.getApplicable(context)).thenReturn(applicableRecipes);
62+
63+
List<Recipe> returnedListOfRecipes = sut.execute(context);
64+
65+
verify(applicableRecipesListHolder).setRecipes(applicableRecipes);
66+
verify(applicableRecipesListHolder).clear();
67+
68+
assertThat(returnedListOfRecipes).isSameAs(applicableRecipes);
69+
}
70+
}

0 commit comments

Comments
 (0)