Gleb Koval
8426dff044
Test Workflow / Lint and test library (push) Successful in 1m34s
Details
Publish Workflow / Publish library (push) Successful in 2m7s
Details
Contributes to #2 . - Add some additional tests to existing functionality. - Cleanup code to use more of `kotlin.io.*` instead of `java.nio.*`. - Validate FSEntry names on object construction (and tests). - Validate folders do not contain entries with duplicate names on `FSCreator.create()` (and tests). Reviewed-on: #4 |
||
---|---|---|
.github/workflows | ||
.idea | ||
gradle/wrapper | ||
src | ||
.editorconfig | ||
.gitignore | ||
README.md | ||
build.gradle.kts | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
settings.gradle.kts |
README.md
TeamCity Kotlin Script build step extension library - Test Task
This is a small project to make a very basic filesystem library in Kotlin and was created using the instructions below as part of my application to the JetBrains internship project "TeamCity Kotlin Script build step extension library".
The package is (very creatively) named filesystem
.
Usage
Gradle
repositories {
// other repositories
maven { url "https://git.koval.net/api/packages/cyclane/maven" }
}
dependencies {
// other dependencies
implementation("net.koval.teamcity-build-step-extension-test-task:filesystem:0.1.0")
}
Documentation
Use autocompletion and hover menus in your IDE, or download the generated HTML documentation from the latest release.
Instructions
Create a library implementing four classes:
FSEntry
, an abstract class with a name property of the typeString
;FSFile
extendingFSEntry
and adding a content property of the typeString
, which will contain a textual file content;FSFolder
extendingFSEntry
and adding a content property of the typeList<FSEntry>
listing files and folders stored within;FSCreator
implementing a singlecreate(entryToCreate: FSEntry, destination: String)
method that would create a directory hierarchy described byentryToCreate
in a given file system destination path.
Please consider various corner cases and error handling. Unit tests covering various scenarios are expected. The test task could be implemented in either Kotlin or Java.