Skip to content

Commit

Permalink
More tests
Browse files Browse the repository at this point in the history
  • Loading branch information
kniazkov committed Aug 30, 2024
1 parent 0f041b1 commit e99dda7
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 27 deletions.
13 changes: 13 additions & 0 deletions src/main/java/org/cqfn/astranaut/core/utils/FilesReader.java
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,19 @@ public String readAsString() throws IOException {
return builder.toString();
}

/**
* Reads file content as a string. If the file can't be read, returns empty string.
* @return The file content
*/
public String readAsStringNoExcept() {
String string = "";
try {
string = this.readAsString();
} catch (final IOException ignored) {

Check warning on line 76 in src/main/java/org/cqfn/astranaut/core/utils/FilesReader.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/org/cqfn/astranaut/core/utils/FilesReader.java#L76

Added line #L76 was not covered by tests
}
return string;
}

/**
* Reads file content as string.
* @param creator The exception creator
Expand Down
75 changes: 75 additions & 0 deletions src/test/java/org/cqfn/astranaut/core/utils/FilesReaderTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
/*
* The MIT License (MIT)
*
* Copyright (c) 2024 Ivan Kniazkov
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package org.cqfn.astranaut.core.utils;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;

/**
* Test for {@link FilesReader} class.
* @since 2.0.0
*/
class FilesReaderTest {
@Test
void wroteAndReadFile(@TempDir final Path tmpdir) {
final Path path = tmpdir.resolve("data.txt");
final FilesWriter writer = new FilesWriter(path.toString());
final boolean flag = writer.writeStringNoExcept("test\r string");
Assertions.assertTrue(flag);
Assertions.assertTrue(Files.exists(path));
final FilesReader reader = new FilesReader(path.toString());
boolean oops = false;
try {
final String result = reader.readAsString();
Assertions.assertEquals("test string", result);
} catch (final IOException ignored) {
oops = true;
}
Assertions.assertFalse(oops);
}

@Test
void testCustomException() {
final FilesReader reader = new FilesReader("path.to.file.that.does.not.exist");
boolean oops = false;
try {
reader.readAsString(CustomException::new);
} catch (final CustomException ignored) {
oops = true;
}
Assertions.assertTrue(oops);
}

/**
* Custom exception for testing purposes.
* @since 2.0.0
*/
private static class CustomException extends Exception {
private static final long serialVersionUID = -1;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@

import java.util.Map;
import java.util.TreeMap;
import org.cqfn.astranaut.core.base.CoreException;
import org.cqfn.astranaut.core.base.DefaultFactory;
import org.cqfn.astranaut.core.base.EmptyTree;
import org.cqfn.astranaut.core.base.Node;
Expand Down Expand Up @@ -160,32 +159,8 @@ void deserializeWithNullFactory() {
*/
private String getFileContent(final String name) {
final String file = JsonDeserializerTest.TESTS_PATH.concat(name);
boolean oops = false;
String source = "";
try {
source = new FilesReader(file).readAsString(
(FilesReader.CustomExceptionCreator<CoreException>) ()
-> new CoreException() {
private static final long serialVersionUID = -6130330765091840343L;

@Override
public String getInitiator() {
return "JsonDeserializerTest";
}

@Override
public String getErrorMessage() {
return String.format(
"Could not read the file that contains source tree: %s",
file
);
}
}
);
} catch (final CoreException exception) {
oops = true;
}
Assertions.assertFalse(oops);
final String source = new FilesReader(file).readAsStringNoExcept();
Assertions.assertFalse(source.isEmpty());
return source;
}
}

0 comments on commit e99dda7

Please sign in to comment.