#!/usr/bin/env vpython3
# Copyright 2022 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""File for testing deploy_to_fuchsia.py."""

import os
import unittest
import unittest.mock as mock

import deploy_to_fuchsia


class DeployToFuchsiaTest(unittest.TestCase):
    """Unittests for deploy_to_fuchsia.py."""

    @mock.patch('deploy_to_fuchsia.read_package_paths', return_value=[])
    @mock.patch('deploy_to_fuchsia.publish_packages')
    @mock.patch('deploy_to_fuchsia.install_symbols')
    def test_main(self, mock_install, mock_publish, mock_read) -> None:
        """Tests |main|."""

        test_package = 'test_package'
        fuchsia_out_dir = 'out/fuchsia'
        with mock.patch(
            'sys.argv',
            [
                'deploy_to_fuchsia.py',
                test_package,
                '-C',
                'out/chromium',
                '--fuchsia-out-dir',
                fuchsia_out_dir,
            ],
        ):
            deploy_to_fuchsia.main()
            self.assertEqual(mock_read.call_args_list[0][0][1], test_package)
            self.assertEqual(
                mock_publish.call_args_list[0][0][1].repo,
                os.path.join(fuchsia_out_dir, 'amber-files'),
            )
            self.assertEqual(
                mock_install.call_args_list[0][0][1], fuchsia_out_dir
            )


if __name__ == '__main__':
    unittest.main()
