コード例 #1
0
ファイル: Append.cs プロジェクト: oguimbal/csharp-driver
        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]);
        }
コード例 #2
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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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]);
        }
コード例 #5
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]);
        }
コード例 #6
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]);
        }
コード例 #7
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]);
        }
コード例 #8
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]);
        }
コード例 #9
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]);
        }
コード例 #10
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]);
        }