### Question:
LifecycleComponentStack implements LifecycleComponent { public static Builder newBuilder() { return new Builder(); } private  LifecycleComponentStack(String name,
                                    ComponentInfoPublisher componentInfoPublisher,
                                    ImmutableList<LifecycleComponent> components); static Builder newBuilder(); @VisibleForTesting int getNumComponents(); @VisibleForTesting LifecycleComponent getComponent(int index); @Override String getName(); @Override Lifecycle.State lifecycleState(); @Override void addLifecycleListener(LifecycleListener listener); @Override void removeLifecycleListener(LifecycleListener listener); @Override void publishInfo(ComponentInfoPublisher componentInfoPublisher); @Override void start(); @Override void stop(); @Override void close(); @Override void setExceptionHandler(UncaughtExceptionHandler handler);  }### Answer:
@Test(expected = NullPointerException.class) public void testBuilderWithNullName() { LifecycleComponentStack.newBuilder().withName(null).build(); }
@Test(expected = NullPointerException.class) public void testBuilderWithNullComponent() { LifecycleComponentStack.newBuilder().addComponent(null); }
@Test(expected = IllegalArgumentException.class) public void testBuilderWithEmptyComponentList() { LifecycleComponentStack.newBuilder().withName("empty-list").build(); }