### Question:
DefaultActorFactory implements ActorFactory<T> { @Override public T createActor(ActorRuntimeContext<T> actorRuntimeContext, ActorId actorId) { try { if (actorRuntimeContext == null) { return null; } Constructor<T> constructor = actorRuntimeContext .getActorTypeInformation() .getImplementationClass() .getConstructor(ActorRuntimeContext.class, ActorId.class); return constructor.newInstance(actorRuntimeContext, actorId); } catch (RuntimeException e) { throw e; } catch (Exception e) { ACTOR_TRACE.writeError( actorRuntimeContext.getActorTypeInformation().getName(), actorId.toString(), "Failed to create actor instance."); throw new RuntimeException(e); } }  @Override T createActor(ActorRuntimeContext<T> actorRuntimeContext, ActorId actorId);  }### Answer:
@Test public void happyActor() { DefaultActorFactory<MyActor> factory = new DefaultActorFactory<>(); ActorId actorId = ActorId.createRandom(); MyActor actor = factory.createActor(createActorRuntimeContext(MyActor.class), actorId); Assert.assertEquals(actorId, actor.actorId); Assert.assertNotNull(actor.context); }
@Test(expected = RuntimeException.class) public void noValidConstructor() { DefaultActorFactory<InvalidActor> factory = new DefaultActorFactory<>(); ActorId actorId = ActorId.createRandom(); factory.createActor(createActorRuntimeContext(InvalidActor.class), actorId); }