public ActionResult GetCode(FormCollection codeCollection) { DateTime date; ulong account; if (!DateTime.TryParse(ViewBag.RegDate = codeCollection["regDate"], out date)) { ViewBag.Answer = "Неправильная дата"; return(View()); } if (!ulong.TryParse(ViewBag.PersAcc = codeCollection["persAcc"], out account)) { ViewBag.Answer = "Счет должен быть целым числом!"; return(View()); } var heatObj = new HeatObject() { objName = ViewBag.ObjName = codeCollection["objName"], personalAccount = account, registryDate = date }; try { switch (codeCollection["algoType"]) { case "Simple": ViewBag.Answer = HeatObjectCodeGenerator.GetSimpleCode(heatObj); break; case "Hex": ViewBag.Answer = HeatObjectCodeGenerator.GetHexCode(heatObj); break; default: ViewBag.Answer = "Ошибка!"; break; } } catch (Exception ex) { ViewBag.Answer = ex.Message; } return(View()); }
public void TestGetCode_CorrectDefaultDateAndInt() { //Arrange var heatObj = new HeatObject() { objName = "ОТ1" }; var expectedCodeS = "S010101ОТ1-0"; var expectedCodeH = "HОТ1-0-65"; //Act var actualCodeS = HeatObjectCodeGenerator.GetSimpleCode(heatObj); var actualCodeH = HeatObjectCodeGenerator.GetHexCode(heatObj); //Assert Assert.Equal(expectedCodeS, actualCodeS); Assert.Equal(expectedCodeH, actualCodeH); }
public void TestGetSimpleCode_IncorrectNameEmpty() { //Arrange var heatObj = new HeatObject() { objName = String.Empty, personalAccount = 12345, registryDate = new DateTime(2014, 3, 4) }; //Act var actualExS = Assert.Throws <ArgumentNullException>(() => HeatObjectCodeGenerator.GetSimpleCode(heatObj)); var actualExH = Assert.Throws <ArgumentNullException>(() => HeatObjectCodeGenerator.GetHexCode(heatObj)); //Assert Assert.Contains("Наименование объекта не может быть пусто", actualExS.Message); Assert.Contains("Наименование объекта не может быть пусто", actualExH.Message); }
public void TestGetSimpleCode_CorrectLongName() { //Arrange var heatObj = new HeatObject() { objName = "ThisIsLongObjectName", personalAccount = 590, registryDate = new DateTime(2019, 01, 31) }; var expectedCodeS = "S310119ThisIsLongO"; var expectedCodeH = "HThisIs-590-77"; //Act var actualCodeS = HeatObjectCodeGenerator.GetSimpleCode(heatObj); var actualCodeH = HeatObjectCodeGenerator.GetHexCode(heatObj); //Assert Assert.Equal(expectedCodeS, actualCodeS); Assert.Equal(expectedCodeH, actualCodeH); }
public void TestGetCode_CorrectSimple() { //Arrange var heatObj = new HeatObject() { objName = "ОТ123", personalAccount = 156, registryDate = new DateTime(2019, 10, 1) }; var expectedCodeS = "S011019ОТ123-156"; var expectedCodeH = "HОТ123-156-3FB"; //Act var actualCode = HeatObjectCodeGenerator.GetSimpleCode(heatObj); var actualCode2 = HeatObjectCodeGenerator.GetHexCode(heatObj); //Assert Assert.Equal(expectedCodeS, actualCode); Assert.Equal(expectedCodeH, actualCode2); }
public void TestGetSimpleCode_CorrectMaxDate() { //Arrange var heatObj = new HeatObject() { objName = "HO09", personalAccount = 45, registryDate = DateTime.MaxValue }; var expectedCodeS = "S311299HO09-45"; var expectedCodeH = "HHO09-45-513"; //Act var actualCodeS = HeatObjectCodeGenerator.GetSimpleCode(heatObj); var actualCodeH = HeatObjectCodeGenerator.GetHexCode(heatObj); //Assert Assert.Equal(expectedCodeS, actualCodeS); Assert.Equal(expectedCodeH, actualCodeH); }
public void TestGetSimpleCode_CorrectLongBoth() { //Arrange var heatObj = new HeatObject() { objName = "LooooooooooooooooooongName", personalAccount = ulong.MaxValue, registryDate = new DateTime(2020, 01, 01) }; string codeUlong = ulong.MaxValue.ToString(); var expectedCodeS = "S010120Loooooooooo"; var expectedCodeH = $"HLooooo-{codeUlong.Remove(HeatObjectCodeGenerator.maxNameHexLength)}-78"; //Act var actualCodeS = HeatObjectCodeGenerator.GetSimpleCode(heatObj); var actualCodeH = HeatObjectCodeGenerator.GetHexCode(heatObj); //Assert Assert.Equal(expectedCodeS, actualCodeS); Assert.Equal(expectedCodeH, actualCodeH); }
public void TestGetSimpleCode_CorrectLongAccount() { //Arrange var heatObj = new HeatObject() { objName = "Obj34", personalAccount = ulong.MaxValue, registryDate = new DateTime(2020, 01, 01) }; string codeUlong = ulong.MaxValue.ToString(); //MaxValue теоретически может меняться, поэтому пусть так var expectedCodeS = $"S010120Obj34-{codeUlong}".Remove(HeatObjectCodeGenerator.maxCountOfDigits); var expectedCodeH = $"HObj34-{codeUlong.Remove(HeatObjectCodeGenerator.maxNameHexLength)}-78"; //Act var actualCodeS = HeatObjectCodeGenerator.GetSimpleCode(heatObj); var actualCodeH = HeatObjectCodeGenerator.GetHexCode(heatObj); //Assert Assert.Equal(expectedCodeS, actualCodeS); Assert.Equal(expectedCodeH, actualCodeH); }