public CompletableFuture<CreateStreamStatus> createStream(String scope, String stream, final StreamConfiguration streamConfig, final long createTimestamp) { Preconditions.checkNotNull(streamConfig, "streamConfig"); Preconditions.checkArgument(createTimestamp >= 0); Timer timer = new Timer(); try { NameUtils.validateStreamName(stream); } catch (IllegalArgumentException | NullPointerException e) { log.warn("Create stream failed due to invalid stream name {}", stream); return CompletableFuture.completedFuture( CreateStreamStatus.newBuilder().setStatus(CreateStreamStatus.Status.INVALID_STREAM_NAME).build()); } return streamMetadataTasks.createStream(scope, stream, streamConfig, createTimestamp) .thenApplyAsync(status -> { reportCreateStreamMetrics(scope, stream, streamConfig.getScalingPolicy().getMinNumSegments(), status, timer.getElapsed()); return CreateStreamStatus.newBuilder().setStatus(status).build(); }, executor); }
when(this.mockControllerService.createStream(any(), any(), any(), anyLong())).thenReturn( CompletableFuture.completedFuture(Controller.CreateStreamStatus.newBuilder() .setStatus(Controller.CreateStreamStatus.Status.SUCCESS).build())); Assert.assertTrue(this.testController.createStream("scope", "stream", StreamConfiguration.builder().build()).join()); .setStatus(Controller.CreateStreamStatus.Status.STREAM_EXISTS).build())); Assert.assertFalse(this.testController.createStream("scope", "stream", StreamConfiguration.builder().build()).join()); .setStatus(Controller.CreateStreamStatus.Status.FAILURE).build())); assertThrows("Expected ControllerFailureException", () -> this.testController.createStream("scope", "stream", StreamConfiguration.builder().build()).join(), .setStatus(Controller.CreateStreamStatus.Status.INVALID_STREAM_NAME).build())); assertThrows("Expected IllegalArgumentException", () -> this.testController.createStream("scope", "stream", StreamConfiguration.builder().build()).join(), .setStatus(Controller.CreateStreamStatus.Status.SCOPE_NOT_FOUND).build())); assertThrows("Expected IllegalArgumentException", () -> this.testController.createStream("scope", "stream", StreamConfiguration.builder().build()).join(),
request.getStreamInfo().getStream().equals("stream8")) { responseObserver.onNext(CreateStreamStatus.newBuilder() .setStatus(CreateStreamStatus.Status.SUCCESS) .build()); responseObserver.onCompleted(); } else if (request.getStreamInfo().getStream().equals("stream2")) { responseObserver.onNext(CreateStreamStatus.newBuilder() .setStatus(CreateStreamStatus.Status.FAILURE) .build()); responseObserver.onCompleted(); } else if (request.getStreamInfo().getStream().equals("stream3")) { responseObserver.onNext(CreateStreamStatus.newBuilder() .setStatus(CreateStreamStatus.Status.SCOPE_NOT_FOUND) .build()); responseObserver.onCompleted(); } else if (request.getStreamInfo().getStream().equals("stream4")) { responseObserver.onNext(CreateStreamStatus.newBuilder() .setStatus(CreateStreamStatus.Status.STREAM_EXISTS) .build()); responseObserver.onCompleted(); } else if (request.getStreamInfo().getStream().equals("stream5")) { responseObserver.onNext(CreateStreamStatus.newBuilder() .setStatus(CreateStreamStatus.Status.INVALID_STREAM_NAME) .build()); responseObserver.onCompleted(); .setStatus(CreateStreamStatus.Status.SUCCESS) .build()); responseObserver.onCompleted();