public void Generate_List_For_CreateColumnFamilyMetdata_UnitTest() { const string parents = "test"; var child=new ColumnFamilyName {Columnfamilyname = "account", Ischecked = true}; var metadata = new ColumnFamilyMetadata { ColumnName = "id", Columnfamilyname = "user", Type = null, Validator = "utf8type" }; child.ChildMetadata.Add(metadata); var exportList = new List<PocoObjectListForExport>(); var parent = new PocoObjectListForExport {NamespaceName = "test", ClassName = "account"}; var firstChild = new PocoListofObjects {Type = "string", ColumnFamilyName = "id"}; parent.PocoListObjects.Add(firstChild); exportList.Add(parent); var expected = exportList; var actual = Reader.GenerateListForColumnFamilyMetdata(parents, child); Assert.IsNotNull(actual); Assert.IsTrue(actual.Count > 0); Assert.AreEqual(expected[0].ClassName, actual[0].ClassName); Assert.AreEqual(expected[0].NamespaceName, actual[0].NamespaceName); Assert.IsTrue(actual[0].PocoListObjects.Count > 0); for (var i = 0; i < actual[0].PocoListObjects.Count; i++) { Assert.AreEqual(expected[0].PocoListObjects[i].Type, actual[0].PocoListObjects[i].Type); Assert.AreEqual(expected[0].PocoListObjects[i].ColumnFamilyName, actual[0].PocoListObjects[i].ColumnFamilyName); } }
/// <summary> /// This functions creates List for ColumnFamily Metadata /// </summary> /// <param name="parent"></param> /// <param name="child"></param> /// <returns>Returns List</returns> public static List<PocoObjectListForExport> GenerateListForColumnFamilyMetdata(string parent, ColumnFamilyName child) { var exportPocoList = new List<PocoObjectListForExport>(); var primarykeylist = string.Empty; Key = new Dictionary<string, string>(); foreach (var data in child.ChildMetadata) { if (String.IsNullOrEmpty(data.Type)) continue; if (!data.Type.Equals("partition_key") && !data.Type.Equals("clustering_key")) continue; Key.Add(data.ColumnName, data.Validator); primarykeylist = String.IsNullOrEmpty(primarykeylist) ? data.ColumnName.ToString(CultureInfo.InvariantCulture) : String.Concat(primarykeylist, ", ", data.ColumnName.ToString(CultureInfo.InvariantCulture)); } exportPocoList.AddRange(Parser.GenratePocoObjects(parent, child, Key)); return exportPocoList; }
/// <summary> /// This function assign values to Metadata . /// </summary> /// <param name="pocoObjectsMetadataDetails"></param> /// <param name="child"></param> /// <param name="key"></param> /// <returns>Returns bool</returns> private static bool AssignColumnFamilyDefinitionsMetadata(ref PocoObjectsMetadata pocoObjectsMetadataDetails, ColumnFamilyName child, Dictionary<string, string> key) { // Fetch class name via columnfamily name pocoObjectsMetadataDetails.ClassName = child.Columnfamilyname; // fetch the key data type pocoObjectsMetadataDetails.Key = key; foreach (ColumnFamilyMetadata data in child.ChildMetadata) { pocoObjectsMetadataDetails.PropertyDetail.Add(data.ColumnName, data.Validator); } const bool isValidColumnFamily = true; return isValidColumnFamily; }
/// <summary> /// This function generate PocoObjects List /// </summary> /// <param name="parent"></param> /// <param name="child"></param> /// <param name="key"></param> /// <returns>Returns Final List</returns> internal static List<PocoObjectListForExport> GenratePocoObjects(string parent, ColumnFamilyName child, Dictionary<string, string> key) { var pocoList = new List<PocoObjectListForExport>(); var pocoObjectsMetadataDetails = new PocoObjectsMetadata { NamespaceName = parent, ClassName = child.Columnfamilyname, Key = key }; // Fetch Namespace name via keyspace name var isValidColumnFamily = AssignColumnFamilyDefinitionsMetadata(ref pocoObjectsMetadataDetails, child, key); if (!isValidColumnFamily) { return pocoList; } pocoList = AppendCSharpPocoClassMetadata(parent, pocoObjectsMetadataDetails); return pocoList; }
/// <summary> /// This function generates list from the columnfamily selected from treeview. /// </summary> /// <param name="parent"></param> /// <param name="child"></param> /// <returns>Returns List</returns> public static List<PocoObjectListForExport> GenerateListForCreateColumnFamilyMetdata(string parent, ColumnFamilyName child) { _exportPocoList.AddRange(Reader.GenerateListForColumnFamilyMetdata(parent, child)); return _exportPocoList; }