{"id":15644986,"url":"https://github.com/vacxe/konveyor","last_synced_at":"2025-10-29T06:17:22.575Z","repository":{"id":84837516,"uuid":"144805954","full_name":"Vacxe/Konveyor","owner":"Vacxe","description":"Random data class generator","archived":false,"fork":false,"pushed_at":"2024-07-24T00:30:46.000Z","size":798,"stargazers_count":60,"open_issues_count":6,"forks_count":7,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-29T11:51:40.252Z","etag":null,"topics":["generative-testing","kotlin","mock","reflection","testing","testing-tools","unit-testing"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Vacxe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-08-15T04:30:06.000Z","updated_at":"2025-02-18T12:08:47.000Z","dependencies_parsed_at":"2024-10-03T12:06:35.295Z","dependency_job_id":"073fe22a-bbf6-48dc-8ec2-298452f9f0ca","html_url":"https://github.com/Vacxe/Konveyor","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vacxe%2FKonveyor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vacxe%2FKonveyor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vacxe%2FKonveyor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vacxe%2FKonveyor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Vacxe","download_url":"https://codeload.github.com/Vacxe/Konveyor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249767964,"owners_count":21322863,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["generative-testing","kotlin","mock","reflection","testing","testing-tools","unit-testing"],"created_at":"2024-10-03T12:03:52.591Z","updated_at":"2025-10-29T06:17:17.530Z","avatar_url":"https://github.com/Vacxe.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Konveyor\nKonveyor is a library for generating Data classes with random values.\n\n## Motivation\n\nFrom time to time, when you implement a test, you need an instance of object. Creating an instance manually takes a lot of time and it might be boring. It's even worse if object contains nested objects. It makes your test a bit littered.\n\n\n## How to use Konveyor\n\nFor example, you have some class like this\n\n```kotlin\ndata class PrimitiveDataClass(val int: Int,\n                              val double: Double,\n                              val byte: Byte,\n                              val short: Short,\n                              val long: Long,\n                              val float: Float,\n                              val boolean: Boolean,\n                              val char: Char,\n                              val string: String,\n                              val charSequence: CharSequence)\n```\n\nJust call this:\n\n```kotlin\nval primitiveDataClass: PrimitiveDataClass = randomBuild()\n```\n\nAnd all fields are automatically filled up:\n\n```\nPrimitiveDataClass(int=-160837378, double=0.2543439936127936, byte=125, short=7553, long=8930811805778341874, float=0.9110602, boolean=false, char=2, string=String_212195448, charSequence=String_1391234678)\n```\n\nAll ```boolean``` will be ```false``` by default\n\nAlso, all fields with setter functions should be initialized manualy. Library can help you only with initialization for constructors variables. \n\n### Special cases\n\nKonveyor generates for you every class which has primitives in base. But sometimes, we have to create classes with interfaces and with some irregular cases. We can resolve this issue by using `ObjectResolver`:\n\n```kotlin\nval resolver = ObjectResolver()\nresolver(MyInterface::class.java, { MyInterfaceImpl() })\n\nval nestedInterfaceDataClass: NestedInterfaceDataClass = randomBuild(resolver = resolver)\n```\n\n### Compatibility with Java\n\nOf course, you can use Konveyor with Java:\n\n```java\nPrimitiveDataClass primitiveDataClass = KonveyorKt.randomBuild(PrimitiveDataClass.class);\n```\n\n### Download\nMaven:\n\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003eio.github.vacxe\u003c/groupId\u003e\n  \u003cartifactId\u003ekonveyor\u003c/artifactId\u003e\n  \u003cversion\u003elatest version\u003c/version\u003e\n  \u003ctype\u003epom\u003c/type\u003e\n\u003c/dependency\u003e\n```\nGradle:\n\n```groovy\ndependencies {\n    implementation 'io.github.vacxe:konveyor:\u003cLATEST VERSION\u003e'\n}\n```\n```kotlin\ndependencies {\n    implementation(\"io.github.vacxe:konveyor:\u003cLATEST VERSION\u003e\")\n}\n```\n\n##### Enjoy your build with Konveyor!\n\n![Logo](https://user-images.githubusercontent.com/2812510/45409134-8b1cba00-b698-11e8-9d43-19d1f7fe19dc.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvacxe%2Fkonveyor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvacxe%2Fkonveyor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvacxe%2Fkonveyor/lists"}