public void CreateAkunPendaftaran_ShouldReturnFullAkun()
        {
            // Arrange
            var newAkun = new AkunPendaftaran()
            {
                JalurPendaftaran = "Reguler",
                CalonSiswa       = new CalonSiswa()
                {
                    Nik = "0000000000000002"
                }
            };
            var fullAkun            = new AkunPendaftaran();
            var _pendaftaranService = new PendaftaranService(_connectionHelper, _securityRelateHelper);

            // Action
            fullAkun = _pendaftaranService.CreateAkunPendaftaran(newAkun);

            // Assert
            Assert.NotNull(fullAkun);
            string msg = $"akun pendaftaran:\n" +
                         $"nomor pendaftaran = {fullAkun.NoPendaftaran}\n" +
                         $"password = {fullAkun.Password}\n" +
                         $"jalur pendaftaran = {fullAkun.JalurPendaftaran}\n" +
                         $"nik = {fullAkun.CalonSiswa.Nik}\n" +
                         $"calon siswa id = {fullAkun.CalonSiswaId}";

            _output.WriteLine(msg);
        }
        public void GetCalonSiswaId_ReturnValid(string nik, int expected)
        {
            // Arrange
            var _pendaftaranService = new PendaftaranService(_connectionHelper, null);

            // Action
            int calonSiswaId = _pendaftaranService.GetCalonSiswaId(nik);

            // Assert
            Assert.Equal(expected, calonSiswaId);
            string msg = $"Kasus Uji: Nik 0000000000000002 memiliki Id 1004 dan masukkan parameter nik dengan {nik}\n" +
                         $"Hasil yang diinginkan: {expected}\n" +
                         $"Hasil aktual: {calonSiswaId}";

            _output.WriteLine(msg);
        }
        public void CreateNoPendaftaran_NewNoPendaftaran(string jalur, string nilai)
        {
            // Arrange
            var _pendaftaranService = new PendaftaranService(_connectionHelper, null);

            // Action
            string newNoPendaftaran = _pendaftaranService.CreateNoPendaftaran(jalur);

            // Assert
            Assert.Equal(nilai, newNoPendaftaran);
            string msg = $"Kasus Uji: nomor terakhir akun pendaftaran jalur reguler adalah 204002, masukkan parameter jalur dengan \"{jalur}\"\n" +
                         $"Hasil yang diinginkan: 204003\n" +
                         $"Hasil aktual: {newNoPendaftaran}";

            _output.WriteLine(msg);
        }
        public void IsExistCalonSiswa_NotExistShouldReturnFalse(string nik)
        {
            // Arrange
            var _pendaftaranService = new PendaftaranService(_connectionHelper, null);

            // Action
            bool isExist = _pendaftaranService.IsExistCalonSiswa(nik);

            // Assert
            Assert.False(isExist);
            string msg = $"Kasus Uji: Nik 9999999999999999 TIDAK ada pada database dan masukkan parameter nik dengan {nik}\n" +
                         $"Hasil yang diinginkan: return false\n" +
                         $"Hasil aktual: {isExist}";

            _output.WriteLine(msg);
        }
        public void GetAkunPendaftaranId_ReturnValue(string noPendaftaran, int expected)
        {
            // Arrange
            var _pendaftaranService = new PendaftaranService(_connectionHelper, null);

            // Action
            int akunId = _pendaftaranService.GetAkunPendaftaranId(noPendaftaran);

            // Assert
            Assert.Equal(expected, akunId);
            string msg = $"Kasus Uji: NoPendaftaran 201006 memiliki Id 2019 dan masukkan parameter noPendaftaran dengan {noPendaftaran}\n" +
                         $"Hasil yang diinginkan: {expected}\n" +
                         $"Hasil aktual: {akunId}";

            _output.WriteLine(msg);
        }
        public void InsertAkunPendaftaran_Insert()
        {
            // Arrange
            var _pendaftaranService = new PendaftaranService(_connectionHelper, _securityRelateHelper);
            var newAkun             = new AkunPendaftaran()
            {
                JalurPendaftaran = "Reguler",
                JadwalTes        = DateTime.Now,
                CalonSiswaId     = 3004,
                NoPendaftaran    = "204011",
                Password         = "******"
            };

            // Action
            _pendaftaranService.InsertAkunPendaftaran(newAkun);
            bool isExist = _pendaftaranService.GetAkunPendaftaranId(newAkun.NoPendaftaran) != 0;

            // Assert
            Assert.True(isExist);
            string msg = $"Kasus Uji: Membuat objek akun pendaftaran kemudian melakukan penyimpanan\n" +
                         $"Hasil yang diinginkan: data tersimpan\n";

            if (isExist)
            {
                msg += "Hasil aktual: data tersimpan";
            }
            else
            {
                msg += "Hasil aktual: data tidak tersimpan";
            }
            _output.WriteLine(msg);

            //using (SqlConnection conn = new SqlConnection(_connectionHelper.GetConnectionString()))
            //{
            //    conn.Execute("DELETE FROM CalonSiswa WHERE Nik = @Nik", new { Nik = newCalonSiswa.Nik });
            //}
        }
        public void InsertCalonSiswa_Insert()
        {
            // Arrange
            var _pendaftaranService = new PendaftaranService(_connectionHelper, null);
            var newCalonSiswa       = new CalonSiswa()
            {
                Nik         = "9999999999999999",
                NamaLengkap = "Tesu Indrawan",
                Nisn        = "9999999999"
            };


            // Action
            _pendaftaranService.InsertCalonSiswa(newCalonSiswa);
            bool isExist = _pendaftaranService.IsExistCalonSiswa(newCalonSiswa.Nik);

            // Assert
            Assert.True(isExist);
            string msg = $"Kasus Uji: Membuat objek calon siswa kemudian melakukan penyimpanan\n" +
                         $"Hasil yang diinginkan: data tersimpan\n";

            if (isExist)
            {
                msg += "Hasil aktual: data tersimpan";
            }
            else
            {
                msg += "Hasil aktual: data tidak tersimpan";
            }
            _output.WriteLine(msg);

            //using (SqlConnection conn = new SqlConnection(_connectionHelper.GetConnectionString()))
            //{
            //    conn.Execute("DELETE FROM CalonSiswa WHERE Nik = @Nik", new { Nik = newCalonSiswa.Nik });
            //}
        }