public void Insert_Fetch_With_Enum() { var config = new MappingConfiguration().Define(new Map <PlainUser>() .ExplicitColumns() .PartitionKey(s => s.UserId) .Column(s => s.FavoriteColor, c => c.WithDbType <int>()) .Column(s => s.Name) .Column(s => s.UserId, c => c.WithName("id")) .TableName("enum_insert_test")); //Use linq to create the table new Table <PlainUser>(_session, config).CreateIfNotExists(); var mapper = new Mapper(_session, config); var user = new PlainUser { UserId = Guid.NewGuid(), Name = "My user", FavoriteColor = RainbowColor.Orange }; mapper.Insert(user, true, 5); var retrievedUser = mapper.First <PlainUser>("WHERE id = ?", user.UserId); Assert.NotNull(retrievedUser); Assert.AreEqual(user.UserId, retrievedUser.UserId); Assert.AreEqual(user.Name, retrievedUser.Name); Assert.AreEqual(user.FavoriteColor, retrievedUser.FavoriteColor); }
public void Insert_Batch_With_Options() { var anotherKeyspace = TestUtils.GetUniqueKeyspaceName().ToLowerInvariant(); using (var cluster = ClusterBuilder().AddContactPoint(TestCluster.InitialContactPoint) .WithSocketOptions(new SocketOptions().SetConnectTimeoutMillis(30000)) .Build()) { var session = cluster.Connect(); session.CreateKeyspace(anotherKeyspace, new Dictionary <string, string> { { "class", "SimpleStrategy" }, { "replication_factor", "3" } }); session.ChangeKeyspace(anotherKeyspace); var config = new MappingConfiguration().Define(new Map <PlainUser>() .ExplicitColumns() .PartitionKey(s => s.UserId) .Column(s => s.FavoriteColor, c => c.WithDbType <int>()) .Column(s => s.Name) .Column(s => s.UserId, c => c.WithName("id")) .TableName("batch_with_options_table")); //Use linq to create the table new Table <PlainUser>(session, config).CreateIfNotExists(); var mapper = new Mapper(session, config); var user1 = new PlainUser { UserId = Guid.NewGuid(), Name = "My user", FavoriteColor = RainbowColor.Orange }; var user2 = new PlainUser { UserId = Guid.NewGuid(), Name = "My user 2", FavoriteColor = RainbowColor.Blue }; var user3 = new PlainUser { UserId = Guid.NewGuid(), Name = "My user 3", FavoriteColor = RainbowColor.Blue }; var batch = mapper.CreateBatch(); batch.Insert(user1); batch.Insert(user2); var consistency = ConsistencyLevel.All; batch.WithOptions(o => o.SetConsistencyLevel(consistency)); //Timestamp for BATCH request is supported in Cassandra 2.1 or above. if (TestClusterManager.CassandraVersion > Version.Parse("2.1")) { var timestamp = DateTimeOffset.UtcNow.Subtract(TimeSpan.FromDays(1)); batch.WithOptions(o => o.SetTimestamp(timestamp)); } var ex = Assert.Throws <UnavailableException>(() => mapper.Execute(batch)); Assert.AreEqual(ConsistencyLevel.All, ex.Consistency, "Consistency level of batch exception should be the same as specified at CqlQueryOptions: ALL"); Assert.AreEqual(3, ex.RequiredReplicas); Assert.AreEqual(1, ex.AliveReplicas); } }