public void SubtractAssign_FromArray_OneValueOfMany_IndexNonZero() { var tupleArrayType = EntityWithArrayType.GetDefaultTable(Session, _tableName); var table = tupleArrayType.Item1; var expectedEntities = tupleArrayType.Item2; var singleEntity = expectedEntities.First(); var tempList = singleEntity.ArrayType.ToList(); tempList.AddRange(new[] { "999", "9999", "99999", "999999" }); singleEntity.ArrayType = tempList.ToArray(); // Get Value to remove var indexToRemove = 2; string[] valsToDelete = { singleEntity.ArrayType[indexToRemove] }; var expectedEntity = singleEntity.Clone(); tempList = expectedEntity.ArrayType.ToList(); tempList.RemoveAt(indexToRemove); expectedEntity.ArrayType = tempList.ToArray(); // SubstractAssign the values table.Where(t => t.Id == singleEntity.Id) .Select(t => new EntityWithArrayType { ArrayType = CqlOperator.SubstractAssign(valsToDelete) }).Update().Execute(); VerifyBoundStatement( $"UPDATE {_tableName} SET ArrayType = ArrayType - ? WHERE Id = ?", 1, valsToDelete, singleEntity.Id); }
public void SubtractAssign_FromArray_ValNotInArray() { var tupleArrayType = EntityWithArrayType.GetDefaultTable(Session, _tableName); var table = tupleArrayType.Item1; var expectedEntities = tupleArrayType.Item2; var singleEntity = expectedEntities.First(); string[] valsToDelete = { "9999" }; // make sure this value is not in the array Assert.AreEqual(1, singleEntity.ArrayType.Length); Assert.AreNotEqual(valsToDelete[0], singleEntity.ArrayType[0]); // SubstractAssign the values table.Where(t => t.Id == singleEntity.Id) .Select(t => new EntityWithArrayType { ArrayType = CqlOperator.SubstractAssign(valsToDelete) }).Update().Execute(); VerifyBoundStatement( $"UPDATE {_tableName} SET ArrayType = ArrayType - ? WHERE Id = ?", 1, valsToDelete, singleEntity.Id); }
public void SubtractAssign_FromArray_Duplicates() { var tupleArrayType = EntityWithArrayType.GetDefaultTable(Session, _tableName); var table = tupleArrayType.Item1; var expectedEntities = tupleArrayType.Item2; var singleEntity = expectedEntities.First(); Assert.AreEqual(1, singleEntity.ArrayType.Length); // make sure there's only one value in the list var indexToRemove = 0; singleEntity.ArrayType.ToList().AddRange(new[] { singleEntity.ArrayType[indexToRemove], singleEntity.ArrayType[indexToRemove], singleEntity.ArrayType[indexToRemove] }); // Get single value to remove var valsToDelete = new[] { singleEntity.ArrayType[indexToRemove] }; var expectedEntity = singleEntity.Clone(); expectedEntity.ArrayType = new string[] { }; // SubstractAssign the values table.Where(t => t.Id == singleEntity.Id) .Select(t => new EntityWithArrayType { ArrayType = CqlOperator.SubstractAssign(valsToDelete) }).Update().Execute(); VerifyBoundStatement( $"UPDATE {_tableName} SET ArrayType = ArrayType - ? WHERE Id = ?", 1, valsToDelete, singleEntity.Id); }
public void Append_ToArray_AppendEmptyArray_QueryUsingCql() { Tuple <Table <EntityWithArrayType>, List <EntityWithArrayType> > tupleArrayType = EntityWithArrayType.SetupDefaultTable(_session); Table <EntityWithArrayType> table = tupleArrayType.Item1; List <EntityWithArrayType> expectedEntities = tupleArrayType.Item2; string[] arrToAdd = new string[] { }; EntityWithArrayType singleEntity = expectedEntities.First(); EntityWithArrayType expectedEntity = singleEntity.Clone(); List <string> strValsAsList = new List <string>(); strValsAsList.AddRange(expectedEntity.ArrayType); strValsAsList.AddRange(arrToAdd); expectedEntity.ArrayType = strValsAsList.ToArray(); // Append the values table.Where(t => t.Id == singleEntity.Id).Select(t => new EntityWithArrayType { ArrayType = CqlOperator.Append(arrToAdd) }).Update().Execute(); // Validate the final state of the data List <Row> rows = _session.Execute("SELECT * from " + table.Name + " where id='" + expectedEntity.Id + "'").GetRows().ToList(); Assert.AreEqual(1, rows.Count); string[] actualArr = rows[0].GetValue <string[]>("arraytype"); Assert.AreEqual(expectedEntity.ArrayType, actualArr); }
public void Append_ToArray_AppendEmptyArray_QueryUsingCql() { var(table, expectedEntities) = EntityWithArrayType.GetDefaultTable(Session, _tableName); var arrToAdd = new string[] { }; var singleEntity = expectedEntities.First(); var expectedEntity = singleEntity.Clone(); var strValsAsList = new List <string>(); strValsAsList.AddRange(expectedEntity.ArrayType); strValsAsList.AddRange(arrToAdd); expectedEntity.ArrayType = strValsAsList.ToArray(); // Append the values table.Where(t => t.Id == singleEntity.Id) .Select(t => new EntityWithArrayType { ArrayType = CqlOperator.Append(arrToAdd) }) .Update().Execute(); VerifyBoundStatement( $"UPDATE {_tableName} SET ArrayType = ArrayType + ? WHERE Id = ?", 1, arrToAdd, singleEntity.Id); }
public void Append_ToArray() { Tuple <Table <EntityWithArrayType>, List <EntityWithArrayType> > tupleArrayType = EntityWithArrayType.SetupDefaultTable(_session); Table <EntityWithArrayType> table = tupleArrayType.Item1; List <EntityWithArrayType> expectedEntities = tupleArrayType.Item2; string[] arrToAdd = new string[] { "random_" + Randomm.RandomAlphaNum(10), "random_" + Randomm.RandomAlphaNum(10), "random_" + Randomm.RandomAlphaNum(10), }; EntityWithArrayType singleEntity = expectedEntities.First(); EntityWithArrayType expectedEntity = singleEntity.Clone(); List <string> strValsAsList = new List <string>(); strValsAsList.AddRange(expectedEntity.ArrayType); strValsAsList.AddRange(arrToAdd); expectedEntity.ArrayType = strValsAsList.ToArray(); // Append the values table.Where(t => t.Id == singleEntity.Id).Select(t => new EntityWithArrayType { ArrayType = CqlOperator.Append(arrToAdd) }).Update().Execute(); // Validate the final state of the data var entityList = table.Where(m => m.Id == singleEntity.Id).ExecuteAsync().Result.ToList(); Assert.AreEqual(1, entityList.Count); Assert.AreNotEqual(expectedEntity.ArrayType, singleEntity.ArrayType); expectedEntity.AssertEquals(entityList[0]); }
public void SubtractAssign_FromArray_AllValues_QueryUsingCql() { var tupleListType = EntityWithArrayType.SetupDefaultTable(Session); var table = tupleListType.Item1; var expectedEntities = tupleListType.Item2; var singleEntity = expectedEntities.First(); var expectedEntity = singleEntity.Clone(); expectedEntity.ArrayType = new string[] {}; // SubstractAssign the values table.Where(t => t.Id == singleEntity.Id).Select(t => new EntityWithArrayType { ArrayType = CqlOperator.SubstractAssign(singleEntity.ArrayType) }).Update().Execute(); // Validate final state of the data var rows = Session.Execute($"SELECT * from {table.Name} where id=\'{expectedEntity.Id}\'").GetRows().ToList(); Assert.AreEqual(1, rows.Count); Assert.AreNotEqual(expectedEntity.ArrayType, singleEntity.ArrayType); var actualArr = rows[0].GetValue <object>("arraytype"); Assert.AreEqual(null, actualArr); }
public void Prepend_ToArray_QueryUsingCql() { Tuple <Table <EntityWithArrayType>, List <EntityWithArrayType> > tupleArrayType = EntityWithArrayType.SetupDefaultTable(_session); Table <EntityWithArrayType> table = tupleArrayType.Item1; List <EntityWithArrayType> expectedEntities = tupleArrayType.Item2; string[] arrToAdd = new string[] { "random_" + Randomm.RandomAlphaNum(10), "random_" + Randomm.RandomAlphaNum(10), "random_" + Randomm.RandomAlphaNum(10), }; List <string> listReversed = arrToAdd.ToList(); listReversed.Reverse(); string[] arrReversed = listReversed.ToArray(); EntityWithArrayType singleEntity = expectedEntities.First(); EntityWithArrayType expectedEntity = singleEntity.Clone(); List <string> strValsAsList = new List <string>(); strValsAsList.AddRange(expectedEntity.ArrayType); strValsAsList.InsertRange(0, arrReversed); expectedEntity.ArrayType = strValsAsList.ToArray(); // Append the values table.Where(t => t.Id == singleEntity.Id).Select(t => new EntityWithArrayType { ArrayType = CqlOperator.Prepend(arrToAdd) }).Update().Execute(); // Validate the final state of the data List <Row> rows = _session.Execute("SELECT * from " + table.Name + " where id='" + expectedEntity.Id + "'").GetRows().ToList(); Assert.AreEqual(1, rows.Count); Assert.AreNotEqual(expectedEntity.ArrayType, singleEntity.ArrayType); string[] actualArr = rows[0].GetValue <string[]>("arraytype"); CollectionAssert.AreEquivalent(expectedEntity.ArrayType, actualArr); }
public void SubtractAssign_FromArray_ValNotInArray() { Tuple <Table <EntityWithArrayType>, List <EntityWithArrayType> > tupleArrayType = EntityWithArrayType.SetupDefaultTable(_session); Table <EntityWithArrayType> table = tupleArrayType.Item1; List <EntityWithArrayType> expectedEntities = tupleArrayType.Item2; EntityWithArrayType singleEntity = expectedEntities.First(); string[] valsToDelete = { "9999" }; // make sure this value is not in the array Assert.AreEqual(1, singleEntity.ArrayType.Length); Assert.AreNotEqual(valsToDelete[0], singleEntity.ArrayType[0]); // SubstractAssign the values table.Where(t => t.Id == singleEntity.Id).Select(t => new EntityWithArrayType { ArrayType = CqlOperator.SubstractAssign(valsToDelete) }).Update().Execute(); // Validate final state of the data List <Row> rows = _session.Execute("SELECT * from " + table.Name + " where id='" + singleEntity.Id + "'").GetRows().ToList(); Assert.AreEqual(1, rows.Count); object actualArr = rows[0].GetValue <object>("arraytype"); Assert.AreEqual(singleEntity.ArrayType, actualArr); }
public void SubtractAssign_FromArray_AllValues_QueryUsingCql() { Tuple <Table <EntityWithArrayType>, List <EntityWithArrayType> > tupleListType = EntityWithArrayType.SetupDefaultTable(_session); Table <EntityWithArrayType> table = tupleListType.Item1; List <EntityWithArrayType> expectedEntities = tupleListType.Item2; EntityWithArrayType singleEntity = expectedEntities.First(); EntityWithArrayType expectedEntity = singleEntity.Clone(); expectedEntity.ArrayType = new string[] {}; // SubstractAssign the values table.Where(t => t.Id == singleEntity.Id).Select(t => new EntityWithArrayType { ArrayType = CqlOperator.SubstractAssign(singleEntity.ArrayType) }).Update().Execute(); // Validate final state of the data List <Row> rows = _session.Execute("SELECT * from " + table.Name + " where id='" + expectedEntity.Id + "'").GetRows().ToList(); Assert.AreEqual(1, rows.Count); Assert.AreNotEqual(expectedEntity.ArrayType, singleEntity.ArrayType); object actualArr = rows[0].GetValue <object>("arraytype"); Assert.AreEqual(null, actualArr); }
public void Prepend_ToArray_QueryUsingCql() { var(table, expectedEntities) = EntityWithArrayType.GetDefaultTable(Session, _tableName); var arrToAdd = new string[] { "random_" + Randomm.RandomAlphaNum(10), "random_" + Randomm.RandomAlphaNum(10), "random_" + Randomm.RandomAlphaNum(10), }; var listReversed = arrToAdd.ToList(); listReversed.Reverse(); var arrReversed = listReversed.ToArray(); var singleEntity = expectedEntities.First(); var expectedEntity = singleEntity.Clone(); var strValsAsList = new List <string>(); strValsAsList.AddRange(expectedEntity.ArrayType); strValsAsList.InsertRange(0, arrReversed); expectedEntity.ArrayType = strValsAsList.ToArray(); // Append the values table.Where(t => t.Id == singleEntity.Id) .Select(t => new EntityWithArrayType { ArrayType = CqlOperator.Prepend(arrToAdd) }) .Update().Execute(); VerifyBoundStatement( $"UPDATE {_tableName} SET ArrayType = ? + ArrayType WHERE Id = ?", 1, arrToAdd, singleEntity.Id); }
public void Prepend_ToArray() { var tupleArrayType = EntityWithArrayType.GetDefaultTable(Session, _tableName); var table = tupleArrayType.Item1; var expectedEntities = tupleArrayType.Item2; var arrToAdd = new string[] { "random_" + Randomm.RandomAlphaNum(10), "random_" + Randomm.RandomAlphaNum(10), "random_" + Randomm.RandomAlphaNum(10), }; var singleEntity = expectedEntities.First(); // Append the values table.Where(t => t.Id == singleEntity.Id) .Select(t => new EntityWithArrayType { ArrayType = CqlOperator.Prepend(arrToAdd) }) .Update().Execute(); VerifyBoundStatement( $"UPDATE {_tableName} SET ArrayType = ? + ArrayType WHERE Id = ?", 1, arrToAdd, singleEntity.Id); }
public void Prepend_ToArray() { Tuple <Table <EntityWithArrayType>, List <EntityWithArrayType> > tupleArrayType = EntityWithArrayType.SetupDefaultTable(_session); Table <EntityWithArrayType> table = tupleArrayType.Item1; List <EntityWithArrayType> expectedEntities = tupleArrayType.Item2; string[] arrToAdd = new string[] { "random_" + Randomm.RandomAlphaNum(10), "random_" + Randomm.RandomAlphaNum(10), "random_" + Randomm.RandomAlphaNum(10), }; EntityWithArrayType singleEntity = expectedEntities.First(); // Append the values table.Where(t => t.Id == singleEntity.Id).Select(t => new EntityWithArrayType { ArrayType = CqlOperator.Prepend(arrToAdd) }).Update().Execute(); // Validate the final state of the data var entityList = table.Where(m => m.Id == singleEntity.Id).ExecuteAsync().Result.ToList(); Assert.AreEqual(1, entityList.Count); CollectionAssert.AreEqual(arrToAdd.Concat(singleEntity.ArrayType).OrderBy(v => v), entityList[0].ArrayType.OrderBy(v => v)); }
public void SubtractAssign_FromArray_AllValues_QueryUsingCql() { var(table, expectedEntities) = EntityWithArrayType.GetDefaultTable(Session, _tableName); var singleEntity = expectedEntities.First(); var expectedEntity = singleEntity.Clone(); expectedEntity.ArrayType = new string[] { }; // SubstractAssign the values table.Where(t => t.Id == singleEntity.Id) .Select(t => new EntityWithArrayType { ArrayType = CqlOperator.SubstractAssign(singleEntity.ArrayType) }).Update().Execute(); VerifyBoundStatement( $"UPDATE {_tableName} SET ArrayType = ArrayType - ? WHERE Id = ?", 1, singleEntity.ArrayType, singleEntity.Id); }
public void SubtractAssign_FromArray_EmptyArray() { var tupleArrayType = EntityWithArrayType.GetDefaultTable(Session, _tableName); var table = tupleArrayType.Item1; var expectedEntities = tupleArrayType.Item2; var singleEntity = expectedEntities.First(); string[] valsToDelete = { }; // SubstractAssign the values table.Where(t => t.Id == singleEntity.Id) .Select(t => new EntityWithArrayType { ArrayType = CqlOperator.SubstractAssign(valsToDelete) }).Update().Execute(); VerifyBoundStatement( $"UPDATE {_tableName} SET ArrayType = ArrayType - ? WHERE Id = ?", 1, valsToDelete, singleEntity.Id); }
public void SubtractAssign_FromArray_Duplicates() { var tupleArrayType = EntityWithArrayType.SetupDefaultTable(Session); var table = tupleArrayType.Item1; var expectedEntities = tupleArrayType.Item2; var singleEntity = expectedEntities.First(); Assert.AreEqual(1, singleEntity.ArrayType.Length); // make sure there's only one value in the list var indexToRemove = 0; singleEntity.ArrayType.ToList().AddRange(new[] { singleEntity.ArrayType[indexToRemove], singleEntity.ArrayType[indexToRemove], singleEntity.ArrayType[indexToRemove] }); // Overwrite one of the rows, validate the data got there table.Insert(singleEntity).Execute(); var rows = Session.Execute($"SELECT * from {table.Name} where id=\'{singleEntity.Id}\'").GetRows().ToList(); Assert.AreEqual(1, rows.Count); var actualArr = rows[0].GetValue <string[]>("arraytype"); Assert.AreEqual(singleEntity.ArrayType, actualArr); // Get single value to remove var valsToDelete = new [] { singleEntity.ArrayType[indexToRemove] }; var expectedEntity = singleEntity.Clone(); expectedEntity.ArrayType = new string[] {}; // SubstractAssign the values table.Where(t => t.Id == singleEntity.Id).Select(t => new EntityWithArrayType { ArrayType = CqlOperator.SubstractAssign(valsToDelete) }).Update().Execute(); // Validate final state of the data rows = Session.Execute($"SELECT * from {table.Name} where id=\'{expectedEntity.Id}\'").GetRows().ToList(); Assert.AreEqual(1, rows.Count); var probablyNullArr = rows[0].GetValue <object>("arraytype"); Assert.AreEqual(null, probablyNullArr); }
public void SubtractAssign_FromArray_OneValueOfMany_IndexNonZero() { Tuple <Table <EntityWithArrayType>, List <EntityWithArrayType> > tupleArrayType = EntityWithArrayType.SetupDefaultTable(_session); Table <EntityWithArrayType> table = tupleArrayType.Item1; List <EntityWithArrayType> expectedEntities = tupleArrayType.Item2; EntityWithArrayType singleEntity = expectedEntities.First(); List <string> tempList = singleEntity.ArrayType.ToList(); tempList.AddRange(new[] { "999", "9999", "99999", "999999" }); singleEntity.ArrayType = tempList.ToArray(); // Overwrite one of the rows table.Insert(singleEntity).Execute(); // Get Value to remove int indexToRemove = 2; string[] valsToDelete = { singleEntity.ArrayType[indexToRemove] }; EntityWithArrayType expectedEntity = singleEntity.Clone(); tempList = expectedEntity.ArrayType.ToList(); tempList.RemoveAt(indexToRemove); expectedEntity.ArrayType = tempList.ToArray(); // SubstractAssign the values table.Where(t => t.Id == singleEntity.Id).Select(t => new EntityWithArrayType { ArrayType = CqlOperator.SubstractAssign(valsToDelete) }).Update().Execute(); // Validate final state of the data List <Row> rows = _session.Execute("SELECT * from " + table.Name + " where id='" + expectedEntity.Id + "'").GetRows().ToList(); Assert.AreEqual(1, rows.Count); Assert.AreNotEqual(expectedEntity.ArrayType, singleEntity.ArrayType); Assert.AreEqual(expectedEntity.ArrayType, rows[0].GetValue <string[]>("arraytype")); }
public void SubtractAssign_FromArray_OneValueOfMany_IndexZero() { var tupleArrayType = EntityWithArrayType.SetupDefaultTable(Session); var table = tupleArrayType.Item1; var expectedEntities = tupleArrayType.Item2; var singleEntity = expectedEntities.First(); var tempList = singleEntity.ArrayType.ToList(); tempList.AddRange(new[] { "999", "9999", "99999", "999999" }); singleEntity.ArrayType = tempList.ToArray(); // Overwrite one of the rows table.Insert(singleEntity).Execute(); // Get value to remove var indexToRemove = 0; string[] valsToDelete = { singleEntity.ArrayType[indexToRemove] }; var expectedEntity = singleEntity.Clone(); tempList = expectedEntity.ArrayType.ToList(); tempList.RemoveAt(indexToRemove); expectedEntity.ArrayType = tempList.ToArray(); // SubstractAssign the values table.Where(t => t.Id == singleEntity.Id).Select(t => new EntityWithArrayType { ArrayType = CqlOperator.SubstractAssign(valsToDelete) }).Update().Execute(); // Validate final state of the data var rows = Session.Execute($"SELECT * from {table.Name} where id=\'{expectedEntity.Id}\'").GetRows().ToList(); Assert.AreEqual(1, rows.Count); Assert.AreNotEqual(expectedEntity.ArrayType, singleEntity.ArrayType); Assert.AreEqual(expectedEntity.ArrayType, rows[0].GetValue <string[]>("arraytype")); }