public void addAppCbTest_restartRecording_invokeCallback()

in src/integrationtests/java/com/aws/iot/integrationtests/edgeconnectorforkvs/videorecorder/VideoRecorderIntegrationTest.java [221:266]


    public void addAppCbTest_restartRecording_invokeCallback() {
        VideoRecorderBuilder builder = new VideoRecorderBuilder((rec, st, desc) -> {
        });

        builder.registerCamera(REC_TYPE, SRC_URL);
        builder.registerAppDataCallback(ContainerType.MATROSKA, (recorder, bBuff) -> {
            addAppCbTestStoreLen += bBuff.limit();
        });
        VideoRecorder recorder = builder.construct();

        // Start recording
        Thread recordThread1 = new Thread(new RunnableRecorder(recorder));
        recordThread1.start();
        recorder.toggleAppDataCallback(true);
        try {
            TimeUnit.SECONDS.sleep(RECORDING_TIME_IN_SECONDS);
        } catch (InterruptedException e) {
            Assertions.fail();
        }
        recorder.toggleAppDataCallback(false);
        recorder.stopRecording();

        while (recorder.getStatus() != RecorderStatus.STOPPED) {
            try {
                TimeUnit.SECONDS.sleep(1);
            } catch (InterruptedException e) {
                Assertions.fail();
            }
        }

        // Restart recording
        Thread recordThread2 = new Thread(new RunnableRecorder(recorder));
        addAppCbTestStoreLen = 0;
        recordThread2.start();
        recorder.toggleAppDataCallback(true);
        try {
            TimeUnit.SECONDS.sleep(RECORDING_TIME_IN_SECONDS);
        } catch (InterruptedException e) {
            Assertions.fail();
        }
        recorder.toggleAppDataCallback(false);
        recorder.stopRecording();
        // Check received length
        System.out.println("addAppCbTest_restartRecording_invokeCallback: " + addAppCbTestStoreLen);
        Assertions.assertTrue(addAppCbTestStoreLen > 0);
    }