Closed PMT87 closed 6 years ago
The Problem seems to be in ContractsFolderLoader. my quickfix is the following for the retrieve function in ContractsFolderLoader.
@Override
public List<URI> retrieve() throws IOException {
File rootDirectory = resolvePath();
return Arrays.stream(rootDirectory.listFiles())
.map(File::toURI)
.collect(Collectors.toList());
}
Thank you very much, I think that the problem is how Windows treats slashes. I have no windows machine to test it but could you add one line in the project, build locally and check if it is working or not?
Just add at this line https://github.com/arquillian/arquillian-algeron/blob/master/provider/core/src/main/java/org/arquillian/algeron/provider/core/retriever/ContractsFolderLoader.java#L53
return Arrays.stream(rootDirectory.listFiles())
.map(file -> file.replace("\\", "/")
.map(file -> "file://" + file.getAbsolutePath())
.map(URI::create)
.collect(Collectors.toList());
Notice the addition of .map(file -> file.replace("\\", "/")
It should work, but if you can give a try it would be better.
Thank you so much.
file.getAbsolutePath().replace wouldnt do it. In case of Windows and a absolutePath (C:/...), we also need "file:///" with three slashes. File::toUri does that for you and also works on Unix (already tested it).
There was one more Problem with ContractsGitLoader also Windows specific.
PR: https://github.com/arquillian/arquillian-algeron/pull/92
Issue Overview
I created a Pact with pact-jvm-consumer-junit5_2.12. After that i wanted to use an arquillian test to verify my provider and started with a minimal exmaple.
The folder is configured inside the arquillian.xml.
Expected Behaviour
Run provider against pact. Fail for all tests since their are no solutions implemented.
Current Behaviour
`java.lang.IllegalArgumentException: Illegal character in authority at index 7: file://C:\projects\pact-project\test-application\target\test-classes\consumer-contracts\test_consumer-test_provider.json
Caused by: java.net.URISyntaxException: Illegal character in authority at index 7: file://C:\projects\pact-project\test-application\target\test-classes\consumer-contracts\test_consumer-test_provider.json at java.net.URI$Parser.fail(URI.java:2848) at java.net.URI$Parser.parseAuthority(URI.java:3186) at java.net.URI$Parser.parseHierarchical(URI.java:3097) at java.net.URI$Parser.parse(URI.java:3053) at java.net.URI.(URI.java:588)
at java.net.URI.create(URI.java:850)
... 46 more
Test ignored. Disconnected from the target VM, address: '127.0.0.1:61589', transport: 'socket'
Process finished with exit code -1`
Steps To Reproduce
Additional Information
Running on Windows 10