public void ExecuteAsync_MixedBatch_Test()
        {
            // Generate test user
            const int idx      = 21;
            var       testUser = new InsertUser
            {
                Id               = Guid.NewGuid(),
                Name             = string.Format("Name {0}", idx),
                Age              = idx,
                CreatedDate      = TestDataGenerator.GetDateTimeInPast(idx),
                IsActive         = idx % 2 == 0,
                LastLoginDate    = TestDataGenerator.GetNullableDateTimeInPast(idx),
                LoginHistory     = TestDataGenerator.GetList(idx, TestDataGenerator.GetDateTimeInPast),
                LuckyNumbers     = TestDataGenerator.GetSet(idx, i => i),
                FavoriteColor    = TestDataGenerator.GetEnumValue <RainbowColor>(idx),
                TypeOfUser       = TestDataGenerator.GetEnumValue <UserType?>(idx),
                PreferredContact = TestDataGenerator.GetEnumValue <ContactMethod>(idx),
                HairColor        = TestDataGenerator.GetEnumValue <HairColor>(idx)
            };

            // Get id of existing user for deleting and updating
            Guid deleteId = Guid.NewGuid();
            Guid updateId = Guid.NewGuid();

            // Create batch of mixed statements and execute
            var       mapper = GetMapper(() => TestHelper.DelayedTask(new RowSet()));
            ICqlBatch batch  = mapper.CreateBatch();

            batch.Insert(testUser);
            batch.Delete <InsertUser>("WHERE userid = ?", deleteId);
            batch.Update <InsertUser>("SET name = ? WHERE userid = ?", "SomeNewName", updateId);
            mapper.ExecuteAsync(batch).Wait();
        }
Beispiel #2
0
        public void Execute_MixedBatch()
        {
            // Generate test user
            const int idx      = 20;
            var       testUser = new InsertUser
            {
                Id               = Guid.NewGuid(),
                Name             = string.Format("Name {0}", idx),
                Age              = idx,
                CreatedDate      = TestDataGenerator.GetDateTimeInPast(idx),
                IsActive         = idx % 2 == 0,
                LastLoginDate    = TestDataGenerator.GetNullableDateTimeInPast(idx),
                LoginHistory     = TestDataGenerator.GetList(idx, TestDataGenerator.GetDateTimeInPast),
                LuckyNumbers     = TestDataGenerator.GetSet(idx, i => i),
                ChildrenAges     = TestDataGenerator.GetDictionary(idx, i => string.Format("Child {0}", i), i => i),
                FavoriteColor    = TestDataGenerator.GetEnumValue <RainbowColor>(idx),
                TypeOfUser       = TestDataGenerator.GetEnumValue <UserType?>(idx),
                PreferredContact = TestDataGenerator.GetEnumValue <ContactMethod>(idx),
                HairColor        = TestDataGenerator.GetEnumValue <HairColor>(idx)
            };

            // Get id of existing user for deleting and updating
            Guid deleteId = TestDataHelper.Users[0].UserId;
            Guid updateId = TestDataHelper.Users[1].UserId;

            // Create batch of mixed statements and execute
            ICqlBatch batch = CqlClient.CreateBatch();

            batch.Insert(testUser);
            batch.Delete <InsertUser>("WHERE userid = ?", deleteId);
            batch.Update <InsertUser>("SET name = ? WHERE userid = ?", "SomeNewName", updateId);
            CqlClient.Execute(batch);
        }
        public void Execute_MixedBatch_Test()
        {
            // Generate test user
            const int idx      = 20;
            var       testUser = new InsertUser
            {
                Id               = Guid.NewGuid(),
                Name             = string.Format("Name {0}", idx),
                Age              = idx,
                CreatedDate      = TestDataGenerator.GetDateTimeInPast(idx),
                IsActive         = idx % 2 == 0,
                LastLoginDate    = TestDataGenerator.GetNullableDateTimeInPast(idx),
                LoginHistory     = TestDataGenerator.GetList(idx, TestDataGenerator.GetDateTimeInPast),
                LuckyNumbers     = TestDataGenerator.GetSet(idx, i => i),
                FavoriteColor    = TestDataGenerator.GetEnumValue <RainbowColor>(idx),
                TypeOfUser       = TestDataGenerator.GetEnumValue <UserType?>(idx),
                PreferredContact = TestDataGenerator.GetEnumValue <ContactMethod>(idx),
                HairColor        = TestDataGenerator.GetEnumValue <HairColor>(idx)
            };

            // Get id of existing user for deleting and updating
            Guid deleteId = Guid.NewGuid();
            Guid updateId = Guid.NewGuid();

            // Create batch of mixed statements and execute
            var       mapper = GetMapper(() => TestHelper.DelayedTask(new RowSet()));
            ICqlBatch batch  = mapper.CreateBatch();

            batch.Insert(testUser);
            batch.Delete <InsertUser>("WHERE userid = ?", deleteId);
            batch.Update <InsertUser>("SET name = ? WHERE userid = ?", "SomeNewName", updateId);
            var queries = batch.Statements.Select(cql => cql.Statement).ToArray();

            Assert.AreEqual(3, queries.Length);
            Assert.AreEqual("INSERT INTO users (userid, Name, Age, CreatedDate, IsActive, " +
                            "LastLoginDate, LoginHistory, LuckyNumbers, ChildrenAges, " +
                            "FavoriteColor, TypeOfUser, preferredcontactmethod, HairColor) VALUES " +
                            "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", queries[0]);
            Assert.AreEqual("DELETE FROM users WHERE userid = ?", queries[1]);
            Assert.AreEqual("UPDATE users SET name = ? WHERE userid = ?", queries[2]);
            mapper.Execute(batch);
        }