public void Append_ToList_AppendEmptyList() { Tuple <Table <EntityWithListType>, List <EntityWithListType> > tupleListType = EntityWithListType.SetupDefaultTable(_session); Table <EntityWithListType> table = tupleListType.Item1; List <EntityWithListType> expectedEntities = tupleListType.Item2; List <int> listToAdd = new List <int> (); EntityWithListType singleEntity = expectedEntities.First(); EntityWithListType expectedEntity = singleEntity.Clone(); table.Where(t => t.Id == singleEntity.Id).Select(t => new EntityWithListType { ListType = CqlOperator.Append(listToAdd) }).Update().Execute(); var entityList = table.Where(m => m.Id == singleEntity.Id).ExecuteAsync().Result.ToList(); Assert.AreEqual(1, entityList.Count); expectedEntity.AssertEquals(entityList[0]); }
public void SubtractAssign_FromList_EmptyList() { var(table, expectedEntities) = EntityWithListType.GetDefaultTable(Session, _tableName); var singleEntity = expectedEntities.First(); var valsToDelete = new List <int>(); // SubstractAssign the values table.Where(t => t.Id == singleEntity.Id) .Select(t => new EntityWithListType { ListType = CqlOperator.SubstractAssign(valsToDelete) }).Update().Execute(); VerifyBoundStatement( $"UPDATE {_tableName} SET ListType = ListType - ? WHERE Id = ?", 1, valsToDelete, singleEntity.Id); }
public void Append_ToList_AppendEmptyList() { var(table, expectedEntities) = EntityWithListType.GetDefaultTable(Session, _tableName); var listToAdd = new List <int>(); var singleEntity = expectedEntities.First(); table.Where(t => t.Id == singleEntity.Id) .Select(t => new EntityWithListType { ListType = CqlOperator.Append(listToAdd) }) .Update().Execute(); VerifyBoundStatement( $"UPDATE {_tableName} SET ListType = ListType + ? WHERE Id = ?", 1, listToAdd, singleEntity.Id); }
public void SubtractAssign_FromList_EmptyList() { var tupleListType = EntityWithListType.SetupDefaultTable(Session); var table = tupleListType.Item1; var expectedEntities = tupleListType.Item2; var singleEntity = expectedEntities.First(); var valsToDelete = new List <int>(); // SubstractAssign the values table.Where(t => t.Id == singleEntity.Id).Select(t => new EntityWithListType { ListType = CqlOperator.SubstractAssign(valsToDelete) }).Update().Execute(); // Validate final state of the data var entityList = table.Where(m => m.Id == singleEntity.Id).ExecuteAsync().Result.ToList(); Assert.AreEqual(1, entityList.Count); singleEntity.AssertEquals(entityList[0]); }
public void SubtractAssign_FromList_Duplicates() { Tuple <Table <EntityWithListType>, List <EntityWithListType> > tupleListType = EntityWithListType.SetupDefaultTable(_session); Table <EntityWithListType> table = tupleListType.Item1; List <EntityWithListType> expectedEntities = tupleListType.Item2; EntityWithListType singleEntity = expectedEntities.First(); Assert.AreEqual(1, singleEntity.ListType.Count); // make sure there's only one value in the list int indexToRemove = 0; singleEntity.ListType.AddRange(new[] { singleEntity.ListType[indexToRemove], singleEntity.ListType[indexToRemove], singleEntity.ListType[indexToRemove] }); // Overwrite one of the rows, validate the data got there table.Insert(singleEntity).Execute(); var entityListPreTest = table.Where(m => m.Id == singleEntity.Id).ExecuteAsync().Result.ToList(); Assert.AreEqual(singleEntity.ListType.Count, entityListPreTest[0].ListType.Count); singleEntity.AssertEquals(entityListPreTest[0]); // Get single value to remove List <int> valsToDelete = new List <int>() { singleEntity.ListType[indexToRemove] }; EntityWithListType expectedEntity = singleEntity.Clone(); expectedEntity.ListType.Clear(); // SubstractAssign the values table.Where(t => t.Id == singleEntity.Id).Select(t => new EntityWithListType { ListType = CqlOperator.SubstractAssign(valsToDelete) }).Update().Execute(); // Validate 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.ListType, singleEntity.ListType); expectedEntity.AssertEquals(entityList[0]); }
public void SubtractAssign_FromList_AllValues() { Tuple <Table <EntityWithListType>, List <EntityWithListType> > tupleListType = EntityWithListType.SetupDefaultTable(_session); Table <EntityWithListType> table = tupleListType.Item1; List <EntityWithListType> expectedEntities = tupleListType.Item2; EntityWithListType singleEntity = expectedEntities.First(); EntityWithListType expectedEntity = singleEntity.Clone(); expectedEntity.ListType.Clear(); // SubstractAssign the values table.Where(t => t.Id == singleEntity.Id).Select(t => new EntityWithListType { ListType = CqlOperator.SubstractAssign(singleEntity.ListType) }).Update().Execute(); // Validate 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.ListType, singleEntity.ListType); expectedEntity.AssertEquals(entityList[0]); }
public void Append_ToList() { Tuple <Table <EntityWithListType>, List <EntityWithListType> > tupleListType = EntityWithListType.SetupDefaultTable(Session); Table <EntityWithListType> table = tupleListType.Item1; List <EntityWithListType> expectedEntities = tupleListType.Item2; List <int> listToAdd = new List <int> { -1, 0, 5, 6 }; EntityWithListType singleEntity = expectedEntities.First(); EntityWithListType expectedEntity = singleEntity.Clone(); expectedEntity.ListType.AddRange(listToAdd); // Append the values table.Where(t => t.Id == singleEntity.Id).Select(t => new EntityWithListType { ListType = CqlOperator.Append(listToAdd) }).Update().Execute(); // Validate 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.ListType, singleEntity.ListType); expectedEntity.AssertEquals(entityList[0]); }
public void Prepend_ToList_StartsOutEmpty() { Tuple <Table <EntityWithListType>, List <EntityWithListType> > tupleListType = EntityWithListType.SetupDefaultTable(_session); Table <EntityWithListType> table = tupleListType.Item1; List <EntityWithListType> expectedEntities = tupleListType.Item2; // overwrite the row we're querying with empty list EntityWithListType singleEntity = expectedEntities.First(); singleEntity.ListType.Clear(); table.Insert(singleEntity).Execute(); List <int> listToAdd = new List <int> { -1, 0, 5, 6 }; List <int> listReversed = new List <int>(listToAdd); listReversed.Reverse(); EntityWithListType expectedEntity = singleEntity.Clone(); expectedEntity.ListType.InsertRange(0, listReversed); // Append the values table.Where(t => t.Id == singleEntity.Id).Select(t => new EntityWithListType { ListType = CqlOperator.Prepend(listToAdd) }).Update().Execute(); // Validate 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.ListType, singleEntity.ListType); expectedEntity.AssertEquals(entityList[0]); }
public void SubtractAssign_FromList_ValNotInList() { Tuple <Table <EntityWithListType>, List <EntityWithListType> > tupleListType = EntityWithListType.SetupDefaultTable(_session); Table <EntityWithListType> table = tupleListType.Item1; List <EntityWithListType> expectedEntities = tupleListType.Item2; EntityWithListType singleEntity = expectedEntities.First(); List <int> valsToDelete = new List <int>() { 9999 }; // make sure this value is not in the list Assert.IsFalse(singleEntity.ListType.Contains(valsToDelete.First())); // SubstractAssign the values table.Where(t => t.Id == singleEntity.Id).Select(t => new EntityWithListType { ListType = CqlOperator.SubstractAssign(valsToDelete) }).Update().Execute(); // Validate final state of the data var entityList = table.Where(m => m.Id == singleEntity.Id).ExecuteAsync().Result.ToList(); Assert.AreEqual(1, entityList.Count); singleEntity.AssertEquals(entityList[0]); }
public void SubtractAssign_FromList_OneValueOfMany_IndexNonZero() { Tuple <Table <EntityWithListType>, List <EntityWithListType> > tupleListType = EntityWithListType.SetupDefaultTable(_session); Table <EntityWithListType> table = tupleListType.Item1; List <EntityWithListType> expectedEntities = tupleListType.Item2; EntityWithListType singleEntity = expectedEntities.First(); singleEntity.ListType.AddRange(new[] { 999, 9999, 99999, 999999 }); // Overwrite one of the rows table.Insert(singleEntity).Execute(); // Get Value to remove int indexToRemove = 2; List <int> valsToDelete = new List <int>() { singleEntity.ListType[indexToRemove] }; EntityWithListType expectedEntity = singleEntity.Clone(); expectedEntity.ListType.RemoveAt(indexToRemove); // SubstractAssign the values table.Where(t => t.Id == singleEntity.Id).Select(t => new EntityWithListType { ListType = CqlOperator.SubstractAssign(valsToDelete) }).Update().Execute(); // Validate 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.ListType, singleEntity.ListType); expectedEntity.AssertEquals(entityList[0]); }