### Question:
CommandsProvider implements Provider<Iterable<CommandProvider<?>>> { @Override public Iterable<CommandProvider<?>> get() { Collection<CommandProvider<?>> commands = new ArrayList<CommandProvider<?>>(); bind(commands, ReceivePackCommandProvider.class); bind(commands, GetStatusCommandProvider.class); bind(commands, MonitorCommandProvider.class); bind(commands, SendBuildCommandProvider.class); bind(commands, CatBuildCommandProvider.class); bind(commands, PingCommandProvider.class); bind(commands, WaitForCommandProvider.class); return commands; } @Inject  CommandsProvider(Context ctx); @Override Iterable<CommandProvider<?>> get();  }### Answer:
@Test public void testGet() { Iterable<CommandProvider<?>> iterable = commandsProvider.get(); @SuppressWarnings("rawtypes") Set<Class<? extends CommandProvider>> types = new HashSet<Class<? extends CommandProvider>>(); for (CommandProvider<?> cp : iterable) { assertThat(cp).isNotNull(); types.add(cp.getClass()); } assertThat(types) .hasSize(7) .contains( SendBuildCommandProvider.class, CatBuildCommandProvider.class, ReceivePackCommandProvider.class, GetStatusCommandProvider.class, MonitorCommandProvider.class, PingCommandProvider.class, WaitForCommandProvider.class ); }