private void ShouldReturnErrorDuplicateInsert() { var dataAccessJsonStr = string.Empty; var formattedJsonStr = string.Empty; try { var model = new FormActionModel() { form_name = "TipeView", form_text = "Tipe", act_1 = "Tambah", act_2 = "Ubah", act_3 = "Hapus", }; _services.Insert(model); } catch (DataAccessException ex) { dataAccessJsonStr = JsonConvert.SerializeObject(ex.DataAccessStatusInfo); formattedJsonStr = JToken.Parse(dataAccessJsonStr).ToString(); } finally { _testOutputHelper.WriteLine(formattedJsonStr); } }
private void ShouldReturnSuccessForInsert() { var operationSecceded = false; var dataAccessJsonStr = string.Empty; var formattedJsonStr = string.Empty; try { string[] formNames = new string[] { "TipeView", "SubTipeView", "BarangView", "SupplierView", "PelangganView" }; foreach (var form in formNames) { var model = new FormActionModel() { form_name = form, form_text = "Tipe", act_1 = "Tambah", act_2 = "Ubah", act_3 = "Hapus", }; _services.Insert(model); } operationSecceded = true; } catch (DataAccessException ex) { operationSecceded = ex.DataAccessStatusInfo.OperationSucceeded; dataAccessJsonStr = JsonConvert.SerializeObject(ex.DataAccessStatusInfo); formattedJsonStr = JToken.Parse(dataAccessJsonStr).ToString(); } try { Assert.True(operationSecceded); _testOutputHelper.WriteLine("Data berhasil ditambahkan."); } finally { _testOutputHelper.WriteLine(formattedJsonStr); } }
/// <summary> /// Isi setiap Button yang ada di Form ke tabel role_detail /// </summary> /// <param name="form">Form target</param> /// <param name="formAction">FormActionModel object</param> /// <param name="control">Control target</param> private void PopulateButtonToRoleDetail(Form form, FormActionModel formAction, Control control) { foreach (Control ctrl in control.Controls) { // Kita hanya ingin memilih Control Button saja if (ctrl is Button) { var button = (Button)ctrl; // Lewati Button yang mempunyai Tag ignore if (button.TagIgnore()) { continue; } // Ambil menu_name dari Tag Button jika tersedia, sebaliknya ambil dari Text Button string buttonText = button.Tag != null?button.Tag.ToString() : button.Text; // Tambahkan ke kolom act baru jika Button ditemukan _colActNo += 1; string colActName = $"act_{_colActNo}"; // Nama property // Atur property berdasarkan nama dari property // cari property berdasarkan nama (contoh act_1) // lalu isi value property tersebut berdasarkan tag / text dari Button var propertyInfo = formAction.GetType().GetProperty(colActName); propertyInfo.SetValue(formAction, Convert.ChangeType(buttonText, propertyInfo.PropertyType), null); // Buat RoleDetail object var roleDetail = new RoleDetailModel() { role_kode = RoleKode, menu_name = buttonText, menu_parent = form.AccessibleName, // Menu header (parent) di MenuStrip form_action = form.Name, tag = "action" }; // Simpan data Button ke tabel role_detail _roleServices.Insert(roleDetail); } PopulateButtonToRoleDetail(form, formAction, ctrl); // Recursive method } }
/// <summary> /// Isi Button action yang ada di Form ke tabel form_action /// </summary> /// <param name="form">Form target</param> private void PopulateButtonFormToFormAction(Form form) { // Buat object FormAction dari Form tersebut var formAction = new FormActionModel(); formAction.form_name = form.Name; formAction.form_text = form.Text; // Looping setiap Control yang bertipe Button pada Form foreach (Control ctrl in form.Controls) { PopulateButtonToRoleDetail(form, formAction, ctrl); } // Reset nilai kolom act dan dispose object Form _colActNo = 0; form.Dispose(); // Simpan data Form ke tabel form_action _formActionServices.Insert(formAction); }
public void ShouldReturnModelMatchingFormName() { FormActionModel model = null; var formNameToGet = "TipeView"; try { model = (FormActionModel)_services.GetByFormName(formNameToGet); } catch (DataAccessException ex) { _testOutputHelper.WriteLine(ex.DataAccessStatusInfo.GetFormatedValues()); } Assert.True(model != null); Assert.True(model.form_name == formNameToGet); if (model != null) { TestsHelper.WriteModel(_testOutputHelper, model); } }
public FormActionServicesFixture() { Model = new FormActionModel(); Services = new FormActionServices(null, new ModelDataAnnotationCheck()); }