Example #1
0
    def test_status_show_valid_data(self):
        test_input = "status"
        interpreter = Interpreter(test_input)
        interpreter.locker_data = [[1, 'KTP', '1234'], [2, None, None]]
        contain_string = "1                         KTP                      1234"

        with patch('sys.stdout', new=StringIO()) as fake_out:
            interpreter.run_command()
            self.assertIn(contain_string, fake_out.getvalue())
Example #2
0
    def test_find_must_1_argument(self):
        message = "find hanya menerima 1 argumen.\n"
        test_input = "find 212 1"
        interpreter = Interpreter(test_input)
        interpreter.locker_data = [[1, 'KTP', '1234'], [2, None, None]]

        with patch('sys.stdout', new=StringIO()) as fake_out:
            interpreter.run_command()
            self.assertEqual(fake_out.getvalue(), message)
Example #3
0
    def test_status_without_argument(self):
        message = "status tidak menerima argumen.\n"
        test_input = "status 1234"
        interpreter = Interpreter(test_input)
        interpreter.locker_data = [[1, 'KTP', '1234'], [2, None, None]]

        with patch('sys.stdout', new=StringIO()) as fake_out:
            interpreter.run_command()
            self.assertEqual(fake_out.getvalue(), message)
Example #4
0
    def test_input_must_initiate_first(self):
        error_message = "Anda belum menginialisasi jumlah loker.\n"
        test_input = "input SIM 123"
        interpreter = Interpreter(test_input)
        interpreter.locker_data = []

        # run test
        with patch('sys.stdout', new=StringIO()) as fake_out:
            interpreter.run_command()
            self.assertEqual(fake_out.getvalue(), error_message)
Example #5
0
    def test_init_reinit(self):
        error_message = "Berhasil membuat loker dengan jumlah 10.\n"
        test_input = "init 10"
        interpreter = Interpreter(test_input)
        interpreter.locker_data = [[1, None, None]]

        # run test
        with patch('sys.stdout', new=StringIO()) as fake_out:
            interpreter.run_command()
            self.assertEqual(fake_out.getvalue(), error_message)
Example #6
0
    def test_init_only_accept_postive_number_and_gte_1(self):
        error_message = "Tipe argumen harus angka dan minimal 1.\n"
        test_input = "init -1"
        interpreter = Interpreter(test_input)
        interpreter.locker_data = []

        # run test
        with patch('sys.stdout', new=StringIO()) as fake_out:
            interpreter.run_command()
            self.assertEqual(fake_out.getvalue(), error_message)
Example #7
0
    def test_input_allow_2_arguments(self):
        error_message = "input hanya menerima 2 argumen.\n"
        test_input = "input SIM 123 123"
        interpreter = Interpreter(test_input)
        # mock self.locker_data
        interpreter.locker_data = [[1, 'KTP', '1234'], [2, None, None]]

        # run test
        with patch('sys.stdout', new=StringIO()) as fake_out:
            interpreter.run_command()
            self.assertEqual(fake_out.getvalue(), error_message)
Example #8
0
    def test_find_data_doesnot_exist(self):
        message = "Nomer identitas tidak ditemukan.\n"
        test_input = "find 12342"
        interpreter = Interpreter(test_input)

        # mock self.locker_data
        interpreter.locker_data = [[1, 'KTP', '1234'], [2, 'KTM', '4321']]

        with patch('sys.stdout', new=StringIO()) as fake_out:
            interpreter.run_command()
            self.assertEqual(fake_out.getvalue(), message)
Example #9
0
    def test_find_data_exist(self):
        message = "Kartu identitas 1234 beradapa pada loker nomer 1.\n"
        test_input = "find 1234"
        interpreter = Interpreter(test_input)

        # mock self.locker_data
        interpreter.locker_data = [[1, 'KTP', '1234'], [2, 'KTM', '4321']]

        with patch('sys.stdout', new=StringIO()) as fake_out:
            interpreter.run_command()
            self.assertEqual(fake_out.getvalue(), message)
Example #10
0
    def test_search_must_1_argument(self):
        message = "search hanya menerima 1 argumen.\n"
        test_input = "search 212 1"
        interpreter = Interpreter(test_input)

        # mock self.locker_data
        interpreter.locker_data = [[1, 'KTP', '1234'], [2, 'KTM', '4321']]

        with patch('sys.stdout', new=StringIO()) as fake_out:
            interpreter.run_command()
            self.assertEqual(fake_out.getvalue(), message)
Example #11
0
    def test_leave_error_if_out_of_locker_length(self):
        message = "Hanya bisa mengkosongkan loker dari 1 - 2.\n"
        test_input = "leave 212"
        interpreter = Interpreter(test_input)

        # mock self.locker_data
        interpreter.locker_data = [[1, 'KTP', '1234'], [2, 'KTM', '4321']]

        with patch('sys.stdout', new=StringIO()) as fake_out:
            interpreter.run_command()
            self.assertEqual(fake_out.getvalue(), message)
Example #12
0
    def test_input_locker_available(self):
        message = "Kartu identitas tersimpan pada loker nomer 1.\n"
        test_input = "input SIM 1234"
        interpreter = Interpreter(test_input)

        # mock self.locker_data
        interpreter.locker_data = [[1, None, None]]

        with patch('sys.stdout', new=StringIO()) as fake_out:
            interpreter.run_command()
            self.assertEqual(fake_out.getvalue(), message)
Example #13
0
    def test_input_locker_full(self):
        error_message = "Maaf, semua loker telah terisi.\n"
        test_input = "input SIM 1234"
        interpreter = Interpreter(test_input)

        # mock self.locker_data
        interpreter.locker_data = [[1, 'KTP', '1234'], [2, 'KTM', '4321']]

        with patch('sys.stdout', new=StringIO()) as fake_out:
            interpreter.run_command()
            self.assertEqual(fake_out.getvalue(), error_message)
Example #14
0
    def test_search_invalid_type_id(self):
        message = "Tipe identitas tidak ditemukan.\n"
        test_input = "search UNKNOWN"
        interpreter = Interpreter(test_input)

        # mock self.locker_data
        interpreter.locker_data = [[1, 'KTP', '1234'], [2, 'KTM', '4321'],
                                   [3, 'KTP', '2233']]

        with patch('sys.stdout', new=StringIO()) as fake_out:
            interpreter.run_command()
            self.assertEqual(fake_out.getvalue(), message)
Example #15
0
    def test_search_valid_data(self):
        message = "ID Number dengan tipe KTP:  1234, 2233.\n"
        test_input = "search KTP"
        interpreter = Interpreter(test_input)

        # mock self.locker_data
        interpreter.locker_data = [[1, 'KTP', '1234'], [2, 'KTM', '4321'],
                                   [3, 'KTP', '2233']]

        with patch('sys.stdout', new=StringIO()) as fake_out:
            interpreter.run_command()
            self.assertEqual(fake_out.getvalue(), message)
Example #16
0
    def test_leave_with_valid_index_range(self):
        message = "Loker no 1 berhasil dikosongkan.\n"
        test_input = "leave 1"
        interpreter = Interpreter(test_input)
        output_locker_data = [[1, None, None], [2, 'KTM', '4321']]

        # mock self.locker_data
        interpreter.locker_data = [[1, 'KTP', '1234'], [2, 'KTM', '4321']]

        with patch('sys.stdout', new=StringIO()) as fake_out:
            interpreter.run_command()
            self.assertEqual(fake_out.getvalue(), message)

        self.assertEqual(interpreter.locker_data, output_locker_data)