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(); }
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); }