public void addFileSinkTest_startRecording_storeFiles()

in src/integrationtests/java/com/aws/iot/integrationtests/edgeconnectorforkvs/videorecorder/VideoRecorderIntegrationTest.java [94:134]


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

        // add camera
        Assertions.assertTrue(() -> builder.registerCamera(REC_TYPE, SRC_URL));

        // add file sink
        final String filePrefix = RandomStringUtils.randomAlphanumeric(RECORDING_FILE_PREFIX_LEN);
        final String filePathPrefix = FILE_FOLDER + "/" + filePrefix;
        Assertions.assertTrue(builder.registerFileSink(CON_TYPE, filePathPrefix));
        Assertions.assertFalse(builder.registerFileSink(CON_TYPE, filePathPrefix));
        Assertions.assertTrue(builder.setFilePathProperty("max-size-time", 5_000_000_000L));

        VideoRecorder recorder = builder.construct();
        Thread recordThread = new Thread(new RunnableRecorder(recorder));

        recordThread.start();
        try {
            TimeUnit.SECONDS.sleep(RECORDING_TIME_IN_SECONDS);
        } catch (InterruptedException e) {
            Assertions.fail();
        }
        recorder.stopRecording();

        // Check stored files
        long fileLen = 0;
        File dir = new File(FILE_FOLDER);
        FileFilter fileFilter = new WildcardFileFilter(filePrefix + "_*.mkv");
        File[] files = dir.listFiles(fileFilter);
        for (int i = 0; i < files.length; ++i) {
            fileLen += files[i].length();
        }
        System.out.println("addFileSinkTest_startRecording_storeFiles: " + fileLen);
        Assertions.assertTrue(fileLen > 0);

        // Clean files
        for (int i = 0; i < files.length; ++i) {
            files[i].delete();
        }
    }