private static Task createTask(TaskDeploymentDescriptor tdd) throws IOException {
    NetworkEnvironment networkEnvironment = mock(NetworkEnvironment.class);
    when(networkEnvironment.createKvStateTaskRegistry(any(JobID.class), any(JobVertexID.class)))
        .thenReturn(mock(TaskKvStateRegistry.class));

    return new Task(
        tdd,
        mock(MemoryManager.class),
        mock(IOManager.class),
        networkEnvironment,
        mock(JobManagerCommunicationFactory.class),
        mock(BroadcastVariableManager.class),
        mock(TaskManagerConnection.class),
        mock(InputSplitProvider.class),
        mock(CheckpointResponder.class),
        new FallbackLibraryCacheManager(),
        new FileCache(new Configuration()),
        new TaskManagerRuntimeInfo(
            "localhost", new Configuration(), EnvironmentInformation.getTemporaryFileDirectory()),
        new UnregisteredTaskMetricsGroup());
  }