-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Here is my test:
@ParameterizedTest
@ClasspathSource(value = "org/eolang/parser/eo-typos/", glob = "**.yaml")
void checksTypoPacks(final String yaml) {
final Xtory story = new XtSticky(
new XtYaml(
yaml,
eo -> new EoSyntax(new InputOf(String.format("%s\n", eo))).parsed()
)
);
Assumptions.assumeTrue(story.map().get("skip") == null);
final Xnav after = new Xnav(story.after().inner());
MatcherAssert.assertThat(
"We expect the error with correct line number was found",
after.path("/object/errors/error/@line").findAny().isPresent(),
Matchers.equalTo(true)
);
MatcherAssert.assertThat(
after.path("/object/errors/error/@line").map(line -> line.text().get()) // <- here is the problem
.collect(Collectors.toList()),
Matchers.hasItem(story.map().get("line").toString())
);
}On the second assert, the analysis fails with this message:
Caused by: com.github.javaparser.resolution.UnsolvedSymbolException: Unsolved symbol : Xtory
at com.github.javaparser.ast.type.ClassOrInterfaceType.convertToUsage (ClassOrInterfaceType.java:358)
at com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convertToUsage (JavaParserFacade.java:648)
at com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convert (JavaParserFacade.java:679)
at com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.convert (JavaParserFacade.java:675)
at com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserVariableDeclaration.getType (JavaParserVariableDeclaration.java:59)
at com.github.javaparser.resolution.model.Value.from (Value.java:46)
at java.util.Optional.map (Optional.java:260)
at com.github.javaparser.symbolsolver.javaparsermodel.contexts.ExpressionContext.solveSymbolAsValue (ExpressionContext.java:45)
at com.github.javaparser.symbolsolver.resolution.SymbolSolver.solveSymbolAsValue (SymbolSolver.java:76)
at com.github.javaparser.symbolsolver.resolution.SymbolSolver.solveSymbolAsValue (SymbolSolver.java:82)
at com.github.javaparser.symbolsolver.javaparsermodel.TypeExtractor.visit (TypeExtractor.java:342)
at com.github.javaparser.symbolsolver.javaparsermodel.TypeExtractor.visit (TypeExtractor.java:63)
at com.github.javaparser.ast.expr.NameExpr.accept (NameExpr.java:80)
at com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeConcrete (JavaParserFacade.java:533)
at com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getType (JavaParserFacade.java:394)
at com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getType (JavaParserFacade.java:359)
at com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext.solveMethodAsUsage (MethodCallExprContext.java:104)
at com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solveMethodAsUsage (JavaParserFacade.java:699)
at com.github.javaparser.symbolsolver.javaparsermodel.TypeExtractor.visit (TypeExtractor.java:332)
at com.github.javaparser.symbolsolver.javaparsermodel.TypeExtractor.visit (TypeExtractor.java:63)
at com.github.javaparser.ast.expr.MethodCallExpr.accept (MethodCallExpr.java:135)
at com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeConcrete (JavaParserFacade.java:533)
at com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getType (JavaParserFacade.java:394)
at com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getType (JavaParserFacade.java:359)
at com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext.solveMethodAsUsage (MethodCallExprContext.java:104)
at com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solveMethodAsUsage (JavaParserFacade.java:699)
at com.github.javaparser.symbolsolver.javaparsermodel.TypeExtractor.visit (TypeExtractor.java:332)
at com.github.javaparser.symbolsolver.javaparsermodel.TypeExtractor.visit (TypeExtractor.java:63)
at com.github.javaparser.ast.expr.MethodCallExpr.accept (MethodCallExpr.java:135)
at com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeConcrete (JavaParserFacade.java:533)
at com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getType (JavaParserFacade.java:394)
at com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getType (JavaParserFacade.java:359)
at com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext.solveMethodAsUsage (MethodCallExprContext.java:104)
at com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solveMethodAsUsage (JavaParserFacade.java:699)
at com.github.javaparser.symbolsolver.javaparsermodel.TypeExtractor.visit (TypeExtractor.java:332)
at com.github.javaparser.symbolsolver.javaparsermodel.TypeExtractor.visit (TypeExtractor.java:63)
at com.github.javaparser.ast.expr.MethodCallExpr.accept (MethodCallExpr.java:135)
at com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getTypeConcrete (JavaParserFacade.java:533)
at com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getType (JavaParserFacade.java:394)
at com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getType (JavaParserFacade.java:390)
at com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.getType (JavaParserFacade.java:359)
at com.github.javaparser.symbolsolver.JavaSymbolSolver.calculateType (JavaSymbolSolver.java:443)
at com.github.javaparser.ast.expr.Expression.calculateResolvedType (Expression.java:578)
at com.github.lombrozo.testnames.javaparser.AssertionOfHamcrest.explanation (AssertionOfHamcrest.java:78)
at com.github.lombrozo.testnames.javaparser.JavaParserAssertion.explanation (JavaParserAssertion.java:57)
at com.github.lombrozo.testnames.rules.RuleAssertionMessage.lambda$complaints$0 (RuleAssertionMessage.java:63)
at java.util.stream.ReferencePipeline$2$1.accept (ReferencePipeline.java:178)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining (ArrayList.java:1708)
at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:509)
at java.util.stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java:499)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential (ForEachOps.java:151)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential (ForEachOps.java:174)
at java.util.stream.AbstractPipeline.evaluate (AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.forEach (ReferencePipeline.java:596)
at com.github.lombrozo.testnames.rules.RuleAssertionMessage.complaints (RuleAssertionMessage.java:65)
at com.github.lombrozo.testnames.rules.RuleSuppressed.complaints (RuleSuppressed.java:91)
at java.util.stream.ReferencePipeline$3$1.accept (ReferencePipeline.java:197)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining (ArrayList.java:1708)
at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:509)
at java.util.stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java:499)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential (ReduceOps.java:921)
at java.util.stream.AbstractPipeline.evaluate (AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.collect (ReferencePipeline.java:682)
at com.github.lombrozo.testnames.rules.RuleCorrectTestCase.complaints (RuleCorrectTestCase.java:72)
at com.github.lombrozo.testnames.rules.RuleSuppressed.complaints (RuleSuppressed.java:91)
at java.util.stream.ReferencePipeline$3$1.accept (ReferencePipeline.java:197)
at java.util.stream.ReferencePipeline$3$1.accept (ReferencePipeline.java:197)
at java.util.HashMap$KeySpliterator.forEachRemaining (HashMap.java:1715)
at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:509)
at java.util.stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java:499)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential (ReduceOps.java:921)
at java.util.stream.AbstractPipeline.evaluate (AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.collect (ReferencePipeline.java:682)
at com.github.lombrozo.testnames.rules.RuleCorrectTestCases.complaints (RuleCorrectTestCases.java:84)
at com.github.lombrozo.testnames.rules.RuleSuppressed.complaints (RuleSuppressed.java:91)
at java.util.stream.ReferencePipeline$3$1.accept (ReferencePipeline.java:197)
at java.util.Spliterators$ArraySpliterator.forEachRemaining (Spliterators.java:1024)
at java.util.stream.ReferencePipeline$Head.forEach (ReferencePipeline.java:762)
at java.util.stream.ReferencePipeline$7$1.accept (ReferencePipeline.java:276)
at java.util.stream.ReferencePipeline$3$1.accept (ReferencePipeline.java:197)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining (ArrayList.java:1708)
at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:509)
at java.util.stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java:499)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential (ReduceOps.java:921)
at java.util.stream.AbstractPipeline.evaluate (AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.collect (ReferencePipeline.java:682)
at com.github.lombrozo.testnames.Cop.inspection (Cop.java:94)
at com.github.lombrozo.testnames.ValidateMojo.validate (ValidateMojo.java:141)
at com.github.lombrozo.testnames.ValidateMojo.execute (ValidateMojo.java:131)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
at java.lang.reflect.Method.invoke (Method.java:580)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:255)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:201)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:361)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:314)
Looks like jtcop misinterprets the first argument (the actual value under test) as the assertion message, and that's why this cryptic error message.
If we add assertion message to the last assertion, then it will pass:
MatcherAssert.assertThat(
after.toString(),
after.path("/object/errors/error/@line").map(line -> line.text().get())
.collect(Collectors.toList()),
Matchers.hasItem(story.map().get("line").toString())
);Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working