public void GivenVariable_CreateObjectInputs_ShouldCreateObjectInput_OnTheInnerEnvToo() { var commonDataUtils = new CommonDataUtils(); Assert.IsNotNull(commonDataUtils); var outerExeEnv = new ExecutionEnvironment(); var recUsername = "******"; outerExeEnv.Assign(recUsername, "Sanele", 0); var definitions = new List <IDev2Definition> { new Dev2Definition("Name", "UserName", "Sanele", false, "NoName", false, recUsername) }; Assert.IsNotNull(definitions); var innerExecEnv = new ExecutionEnvironment(); var prObj = new PrivateObject(innerExecEnv); var warewolfEnvironment = prObj.GetField("_env") as DataStorage.WarewolfEnvironment; Assert.IsTrue(warewolfEnvironment != null && warewolfEnvironment.Scalar.Count == 0); commonDataUtils.CreateObjectInputs(outerExeEnv, definitions, innerExecEnv, 0); warewolfEnvironment = prObj.GetField("_env") as DataStorage.WarewolfEnvironment; Assert.IsTrue(warewolfEnvironment != null && warewolfEnvironment.Scalar.Count == 1); }
public void AddMissingFileDirectoryParts_GivenDestinationPathIsDirectory_SourcePathIsDirectory() { const string file = "C:\\Parent\\a.txt"; const string dstfile = "C:\\Parent\\Child\\"; var srcPath = new Mock <IActivityIOPath>(); srcPath.Setup(path => path.Path).Returns(file); var dstPath = new Mock <IActivityIOPath>(); dstPath.Setup(path => path.Path).Returns(dstfile); var dev2CrudOperationTO = new Dev2CRUDOperationTO(true); var src = new Mock <IActivityIOOperationsEndPoint>(); src.Setup(p => p.CreateDirectory(It.IsAny <IActivityIOPath>(), dev2CrudOperationTO)).Returns(true); src.Setup(p => p.IOPath).Returns(srcPath.Object); src.Setup(p => p.PathSeperator()).Returns("\\"); src.Setup(p => p.PathIs(srcPath.Object)).Returns(enPathType.Directory); var dst = new Mock <IActivityIOOperationsEndPoint>(); dst.Setup(p => p.CreateDirectory(It.IsAny <IActivityIOPath>(), dev2CrudOperationTO)).Returns(true); dst.Setup(p => p.IOPath).Returns(dstPath.Object); dst.Setup(p => p.PathSeperator()).Returns("\\"); dst.Setup(p => p.PathIs(dstPath.Object)).Returns(enPathType.Directory); var commonDataUtils = new CommonDataUtils(); commonDataUtils.AddMissingFileDirectoryParts(src.Object, dst.Object); dstPath.VerifySet(p => p.Path = @"C:\Parent\Child\a.txt"); }
public void ValidateSourceAndDestinationPaths_GivenIsPathRooted_ShouldReturnFalse() { const string txt = "C:\\Home\\a.txt"; var srcPath = new Mock <IActivityIOPath>(); srcPath.Setup(path => path.Path).Returns(txt); var dstPath = new Mock <IActivityIOPath>(); dstPath.Setup(path => path.Path).Returns("some relative path"); var dev2CrudOperationTO = new Dev2CRUDOperationTO(true); var src = new Mock <IActivityIOOperationsEndPoint>(); src.Setup(p => p.CreateDirectory(It.IsAny <IActivityIOPath>(), dev2CrudOperationTO)).Returns(true); src.Setup(p => p.IOPath).Returns(srcPath.Object); src.Setup(p => p.PathSeperator()).Returns("\\"); var dst = new Mock <IActivityIOOperationsEndPoint>(); dst.Setup(p => p.CreateDirectory(It.IsAny <IActivityIOPath>(), dev2CrudOperationTO)).Returns(true); dst.Setup(p => p.IOPath).Returns(dstPath.Object); dst.Setup(p => p.PathSeperator()).Returns("\\"); var commonDataUtils = new CommonDataUtils(); commonDataUtils.ValidateSourceAndDestinationPaths(src.Object, dst.Object); }
public void GenerateDefsFromDataListForDebug_GivenNullValue() { const string trueString = "True"; var datalist = string.Format("<DataList><Person Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"Both\" ><Name Description=\"\" IsEditable=\"{0}\" ColumnIODirection=\"Input\" /></Person></DataList>", trueString); var commonDataUtils = new CommonDataUtils(); var results = commonDataUtils.GenerateDefsFromDataListForDebug(datalist, enDev2ColumnArgumentDirection.Both); Assert.AreEqual(1, results.Count); Assert.AreEqual("Name", results[0].Name); }
static IList <string> MakeDirectoryParts(IActivityIOPath path, string splitter) { string[] tmp; IList <string> result = new List <string>(); var builderPath = new StringBuilder(); var splitOn = splitter.ToCharArray(); if (CommonDataUtils.IsUncFileTypePath(path.Path)) { var uncPath = path.Path.Substring(2); var splitValues = uncPath.Split(splitOn).ToList(); builderPath.Append(@"\\"); builderPath.Append(splitValues[0]); builderPath.Append(@"\"); splitValues.RemoveAt(0); tmp = splitValues.ToArray(); } else if (CommonDataUtils.IsNotFtpTypePath(path)) { tmp = path.Path.Split(splitOn); } else { var splitValues = path.Path.Split(new[] { @"://" }, StringSplitOptions.RemoveEmptyEntries).ToList(); builderPath.Append(splitValues[0]); builderPath.Append(@"://"); splitValues.RemoveAt(0); var newPath = string.Join(@"/", splitValues); tmp = newPath.Split(splitOn); } var candiate = tmp[tmp.Length - 1]; var len = tmp.Length; if (candiate.Contains(@"*.") || candiate.Contains(@".")) { len = tmp.Length - 1; } for (var i = 0; i < len; i++) { if (!string.IsNullOrWhiteSpace(tmp[i])) { builderPath.Append(tmp[i]); builderPath.Append(splitter); result.Add(builderPath.ToString()); } } return(result); }
public void GivenNullDestination_AddMissingFileDirectoryParts_ShouldRetunError() { var commonDataUtils = new CommonDataUtils(); var tempFile = Path.GetTempFileName(); const string newFileName = "ZippedTempFile"; var zipPathName = Path.GetTempPath() + newFileName + ".zip"; IActivityIOOperationsEndPoint scrEndPoint = ActivityIOFactory.CreateOperationEndPointFromIOPath(ActivityIOFactory.CreatePathFromString(tempFile, string.Empty, null, true, "")); IActivityIOOperationsEndPoint dstEndPoint = ActivityIOFactory.CreateOperationEndPointFromIOPath(ActivityIOFactory.CreatePathFromString(zipPathName, string.Empty, null, true, "")); Assert.IsNotNull(commonDataUtils); dstEndPoint.IOPath.Path = string.Empty; commonDataUtils.AddMissingFileDirectoryParts(scrEndPoint, dstEndPoint); }
public void CreateRecordSetsInputs_GivenNullValue() { var outerEnvironment = new Mock <IExecutionEnvironment>(); var inputRecSets = new Mock <IRecordSetCollection>(); var mockedInput = new Mock <IRecordSetDefinition>(); var nameColumn = new Mock <IDev2Definition>(); var ageColumn = new Mock <IDev2Definition>(); var input1 = new Mock <IDev2Definition>(); var input2 = new Mock <IDev2Definition>(); mockedInput.Setup(p => p.SetName).Returns("Person"); nameColumn.Setup(p => p.Name).Returns("Name"); nameColumn.Setup(p => p.IsRecordSet).Returns(true); nameColumn.Setup(p => p.RecordSetName).Returns("Person"); ageColumn.Setup(p => p.Name).Returns("Age"); ageColumn.Setup(p => p.IsRecordSet).Returns(true); ageColumn.Setup(p => p.RecordSetName).Returns("Person"); mockedInput.Setup(p => p.Columns).Returns(new List <IDev2Definition> { nameColumn.Object, ageColumn.Object }); inputRecSets.Setup(p => p.RecordSets).Returns(new List <IRecordSetDefinition> { mockedInput.Object }); input1.Setup(p => p.IsRecordSet).Returns(true); input1.Setup(p => p.MapsTo).Returns("[[Person().Name]]"); input1.Setup(p => p.RecordSetName).Returns("Person"); input2.Setup(p => p.IsRecordSet).Returns(true); input2.Setup(p => p.MapsTo).Returns("[[Person().Age]]"); input2.Setup(p => p.RecordSetName).Returns("Person"); var inputs = new List <IDev2Definition> { input1.Object, input2.Object }; var env = new Mock <IExecutionEnvironment>(); int update = 0; var commonDataUtils = new CommonDataUtils(); commonDataUtils.CreateRecordSetsInputs(outerEnvironment.Object, inputRecSets.Object, inputs, env.Object, update); env.Verify(p => p.AssignDataShape("[[Person().Name]]"), Times.AtLeastOnce); env.Verify(p => p.AssignDataShape("[[Person().Age]]"), Times.AtLeastOnce); }
public static DBTranSet Save(DBTranSet req) { bool isTran = false; try { if (req == null) { throw new Exception("처리할 요청이 정확하지 않습니다."); } if (req.TranList == null || req.TranList.Length == 0) { throw new Exception("처리할 데이터가 없습니다."); } DaoFactory.Instance.BeginTransaction(); isTran = true; try { object product_id = null; object reg_id = null; string product_code = string.Empty; //상품정보 저장 if (req.TranList.Length > 0) { if (req.TranList[0].Data == null) { throw new Exception("상품정보를 저장할 데이터가 존재하지 않습니다."); } DataMap data = req.TranList[0].Data as DataMap; data.SetValue("INS_USER", req.UserId); if (string.IsNullOrEmpty(data.GetValue("PRODUCT_CODE").ToStringNullToEmpty())) { product_code = CommonDataUtils.GetProductCode(data.GetValue("PRODUCT_TYPE").ToString()); data.SetValue("PRODUCT_CODE", product_code); } if (data.GetValue("ROWSTATE").ToStringNullToEmpty() == "INSERT") { product_id = DaoFactory.Instance.Insert("InsertProduct", data); } else if (data.GetValue("ROWSTATE").ToStringNullToEmpty() == "UPDATE") { DaoFactory.Instance.Update("UpdateProduct", data); product_id = data.GetValue("PRODUCT_ID"); } else if (data.GetValue("ROWSTATE").ToStringNullToEmpty() == "DELETE") { DaoFactory.Instance.Update("DeleteProduct", data); product_id = data.GetValue("PRODUCT_ID"); } req.TranList[0].ErrorNumber = 0; req.TranList[0].ErrorMessage = "SUCCESS"; req.TranList[0].ReturnValue = product_id; } //원부자재정보 저장 if (req.TranList.Length > 1) { if (req.TranList[1].Data != null && (req.TranList[1].Data as DataTable).Rows.Count > 0) { IList <DataMap> list = (req.TranList[1].Data as DataTable).ToDataMapList(); foreach (DataMap map in list) { map.SetValue("PRODUCT_ID", product_id); map.SetValue("INS_USER", req.UserId); if (map.GetValue("ROWSTATE").ToStringNullToEmpty() == "INSERT") { reg_id = DaoFactory.Instance.Insert("InsertProductMaterial", map); } else if (map.GetValue("ROWSTATE").ToStringNullToEmpty() == "UPDATE") { DaoFactory.Instance.Update("UpdateProductMaterial", map); reg_id = map.GetValue("REG_ID"); } else if (map.GetValue("ROWSTATE").ToStringNullToEmpty() == "DELETE") { DaoFactory.Instance.Update("DeleteProductMaterial", map); reg_id = map.GetValue("REG_ID"); } } req.TranList[1].ErrorNumber = 0; req.TranList[1].ErrorMessage = "SUCCESS"; req.TranList[1].ReturnValue = product_id; } } if (isTran) { DaoFactory.Instance.CommitTransaction(); } } catch (Exception ex) { if (isTran) { DaoFactory.Instance.RollBackTransaction(); } throw new Exception(ex.Message); } return(req); } catch (Exception ex) { req.ErrorNumber = ex.HResult; req.ErrorMessage = ex.Message; return(req); } }
/// <summary> /// Save /// 데이터 저장(Insert, Update) /// </summary> /// <param name="req">WasRequest</param> /// <returns>WasRequest</returns> public static DBTranSet Save(DBTranSet req) { bool isTran = false; try { if (req == null) { throw new Exception("처리할 요청이 정확하지 않습니다."); } if (req.TranList == null || req.TranList.Length == 0) { throw new Exception("처리할 데이터가 없습니다."); } DaoFactory.Instance.BeginTransaction(); isTran = true; try { object purc_id = null; object purc_no = null; object item_id = null; //마스터저장 if (req.TranList.Length > 0) { if (req.TranList[0].Data == null) { throw new Exception("저장할 데이터가 존재하지 않습니다."); } DataMap data = req.TranList[0].Data as DataMap; data.SetValue("INS_USER", req.UserId); if (string.IsNullOrEmpty(data.GetValue("PURC_NO").ToStringNullToEmpty())) { purc_no = CommonDataUtils.GetPurcNo(); data.SetValue("PURC_NO", purc_no); } if (data.GetValue("ROWSTATE").ToStringNullToEmpty() == "INSERT") { purc_id = DaoFactory.Instance.Insert("InsertPurcTran", data); } else if (data.GetValue("ROWSTATE").ToStringNullToEmpty() == "UPDATE") { DaoFactory.Instance.Update("UpdatePurcTran", data); purc_id = data.GetValue("PURC_ID"); } req.TranList[0].ErrorNumber = 0; req.TranList[0].ErrorMessage = "SUCCESS"; req.TranList[0].ReturnValue = purc_id; } //구매상품내역 저장 if (req.TranList.Length > 1) { if (req.TranList[1].Data != null && (req.TranList[1].Data as DataTable).Rows.Count > 0) { IList <DataMap> list = (req.TranList[1].Data as DataTable).ToDataMapList(); foreach (DataMap map in list) { map.SetValue("PURC_ID", purc_id); map.SetValue("INS_USER", req.UserId); if (map.GetValue("ROWSTATE").ToStringNullToEmpty() == "INSERT") { item_id = DaoFactory.Instance.Insert("InsertPurcTranItem", map); //재고반영 DaoFactory.Instance.QueryForObject <int>("BatchInventory", new DataMap() { { "TRAN_ID", purc_id }, { "TRAN_TP", "PC" }, { "REG_TP", "II" }, { "ITEM_ID", item_id }, { "INS_USER", map.GetValue("INS_USER") } }); } else if (map.GetValue("ROWSTATE").ToStringNullToEmpty() == "UPDATE") { item_id = map.GetValue("ITEM_ID"); //재고반영(-) DaoFactory.Instance.QueryForObject <int>("BatchInventory", new DataMap() { { "TRAN_ID", purc_id }, { "TRAN_TP", "PC" }, { "REG_TP", "UD" }, { "ITEM_ID", item_id }, { "INS_USER", map.GetValue("INS_USER") } }); //구매내역 수정 DaoFactory.Instance.Update("UpdatePurcTranItem", map); //재고반영(+) DaoFactory.Instance.QueryForObject <int>("BatchInventory", new DataMap() { { "TRAN_ID", purc_id }, { "TRAN_TP", "PC" }, { "REG_TP", "UI" }, { "ITEM_ID", item_id }, { "INS_USER", map.GetValue("INS_USER") } }); } else if (map.GetValue("ROWSTATE").ToStringNullToEmpty() == "DELETE") { item_id = map.GetValue("ITEM_ID"); //재고반영 DaoFactory.Instance.QueryForObject <int>("BatchInventory", new DataMap() { { "TRAN_ID", purc_id }, { "TRAN_TP", "PC" }, { "REG_TP", "DD" }, { "ITEM_ID", item_id }, { "INS_USER", map.GetValue("INS_USER") } }); DaoFactory.Instance.Update("DeletePurcTranItem", map); } } req.TranList[1].ErrorNumber = 0; req.TranList[1].ErrorMessage = "SUCCESS"; req.TranList[1].ReturnValue = item_id; } } if (isTran) { DaoFactory.Instance.CommitTransaction(); } } catch (Exception ex) { if (isTran) { DaoFactory.Instance.RollBackTransaction(); } throw new Exception(ex.Message); } return(req); } catch (Exception ex) { req.ErrorNumber = ex.HResult; req.ErrorMessage = ex.Message; return(req); } }