Coder Social home page Coder Social logo

kotlin-fixture's Issues

ArrayIndexOutOfBoundsException on a fixture of Class<T>

Trying to create a fixture of a Class results in an ArrayOutOfBoundException using the following example:

I'm not sure if it's missing something in the initialization or if I need to register something in order to work.

data class PagedResponse<T>(
    val info: Info,
    val results: List<T>
)

data class Character(
    val id: Int,
    val name: String,
    val status: String,
    val species: String,
    val type: String,
    val gender: String,
    val image: String,
    val episode: List<String>,
    val url: String,
    val created: String
)
class Test {
    private val fixture = Fixture()
    @Test
    fun test() = runBlocking {
       val sut = fixture.next<PagedResponse<Character>>()
    }
}

Stacktrace:


java.lang.ArrayIndexOutOfBoundsException: -1

	at java.util.ArrayList.elementData(ArrayList.java:422)
	at java.util.ArrayList.get(ArrayList.java:435)
	at com.marcellogalhardo.fixture.resolver.param.TypeParamResolver.resolveParam(TypeParamResolver.kt:20)
	at com.marcellogalhardo.fixture.resolver.SimpleResolver.resolve(SimpleResolver.kt:11)
	at com.marcellogalhardo.fixture.resolver.CompositeResolver.resolve(CompositeResolver.kt:15)
	at com.marcellogalhardo.fixture.FixtureResolver$DefaultImpls.resolve(FixtureResolver.kt:19)
	at com.marcellogalhardo.fixture.resolver.CompositeResolver.resolve(CompositeResolver.kt:7)
	at com.marcellogalhardo.fixture.resolver.type.ListTypeResolver.resolveType(ListTypeResolver.kt:22)
	at com.marcellogalhardo.fixture.resolver.SimpleResolver.resolve(SimpleResolver.kt:10)
	at com.marcellogalhardo.fixture.resolver.CompositeResolver.resolve(CompositeResolver.kt:15)
	at com.marcellogalhardo.fixture.FixtureResolver$DefaultImpls.resolve(FixtureResolver.kt:14)
	at com.marcellogalhardo.fixture.resolver.CompositeResolver.resolve(CompositeResolver.kt:7)
	at com.marcellogalhardo.fixture.DefaultFixture.next(DefaultFixture.kt:25)
	at com.marcellogalhardo.fixture.resolver.param.ClassParamResolver.resolveParam(ClassParamResolver.kt:14)
	at com.marcellogalhardo.fixture.resolver.SimpleResolver.resolve(SimpleResolver.kt:11)
	at com.marcellogalhardo.fixture.resolver.CompositeResolver.resolve(CompositeResolver.kt:15)
	at com.marcellogalhardo.fixture.FixtureResolver$DefaultImpls.resolve(FixtureResolver.kt:19)
	at com.marcellogalhardo.fixture.resolver.CompositeResolver.resolve(CompositeResolver.kt:7)
	at com.marcellogalhardo.fixture.resolver.type.ClassTypeResolver.resolveType(ClassTypeResolver.kt:21)
	at com.marcellogalhardo.fixture.resolver.SimpleResolver.resolve(SimpleResolver.kt:10)
	at com.marcellogalhardo.fixture.resolver.CompositeResolver.resolve(CompositeResolver.kt:15)
	at com.marcellogalhardo.fixture.FixtureResolver$DefaultImpls.resolve(FixtureResolver.kt:14)
	at com.marcellogalhardo.fixture.resolver.CompositeResolver.resolve(CompositeResolver.kt:7)
	at com.marcellogalhardo.fixture.DefaultFixture.next(DefaultFixture.kt:25)
	at ie.poke.rickmorty.app.data.CharactersRepositoryTest$should call service and return character list$1.invokeSuspend(CharactersRepositoryTest.kt:29)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:271)
	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:79)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:54)
	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:36)
	at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
	at ie.poke.rickmorty.app.data.CharactersRepositoryTest.should call service and return character list(CharactersRepositoryTest.kt:20)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
	at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
	at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:230)
	at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.