public void TestCreateColumnFamilyWithCompression()
        {
            InternalTestCreateColumnFamilyCompression(ColumnFamilyCompression.LZ4(new CompressionOptions {
                ChunkLengthInKb = 128
            }));
            InternalTestCreateColumnFamilyCompression(ColumnFamilyCompression.LZ4(new CompressionOptions {
                ChunkLengthInKb = 1024
            }));

            InternalTestCreateColumnFamilyCompression(ColumnFamilyCompression.Snappy(new CompressionOptions {
                ChunkLengthInKb = 32
            }));
            InternalTestCreateColumnFamilyCompression(ColumnFamilyCompression.Snappy(new CompressionOptions {
                ChunkLengthInKb = 1024
            }));

            InternalTestCreateColumnFamilyCompression(ColumnFamilyCompression.Deflate(new CompressionOptions {
                ChunkLengthInKb = 2
            }));
            InternalTestCreateColumnFamilyCompression(ColumnFamilyCompression.Deflate(new CompressionOptions {
                ChunkLengthInKb = 1024
            }));

            InternalTestCreateColumnFamilyCompression(ColumnFamilyCompression.None());
        }
        public void TestActualizeWithNullProperties()
        {
            var keyspaceName = TestSchemaUtils.GetRandomKeyspaceName();
            var scheme       = new KeyspaceScheme
            {
                Name          = keyspaceName,
                Configuration = new KeyspaceConfiguration
                {
                    ColumnFamilies = new[]
                    {
                        new ColumnFamily
                        {
                            Name        = "CF1",
                            Compression = ColumnFamilyCompression.Deflate(new CompressionOptions {
                                ChunkLengthInKb = 1024
                            }),
                            Caching = ColumnFamilyCaching.KeysOnly
                        }
                    }
                }
            };

            ActualizeKeyspaces(scheme);

            var actualScheme = cluster.RetrieveKeyspaceConnection(keyspaceName).DescribeKeyspace();

            Assert.That(actualScheme.ColumnFamilies["CF1"].Compression.Algorithm, Is.EqualTo(CompressionAlgorithms.Deflate));

            scheme.Configuration.ColumnFamilies[0].Compression = null;
            scheme.Configuration.ColumnFamilies[0].Caching     = ColumnFamilyCaching.All;
            ActualizeKeyspaces(scheme);

            actualScheme = cluster.RetrieveKeyspaceConnection(keyspaceName).DescribeKeyspace();
            Assert.That(actualScheme.ColumnFamilies["CF1"].Compression.Algorithm, Is.EqualTo(CompressionAlgorithms.LZ4));
        }
        public void TestChangeCompressionProperty()
        {
            var scheme = new KeyspaceScheme
            {
                Name          = TestSchemaUtils.GetRandomKeyspaceName(),
                Configuration = new KeyspaceConfiguration
                {
                    ColumnFamilies = new[]
                    {
                        new ColumnFamily
                        {
                            Name = "CF1"
                        }
                    }
                }
            };

            ActualizeKeyspaces(scheme);
            Assert.That(cluster.UpdateColumnFamilyInvokeCount, Is.EqualTo(0));
            scheme.Configuration.ColumnFamilies[0].Compression = ColumnFamilyCompression.Deflate(new CompressionOptions {
                ChunkLengthInKb = 1024
            });
            ActualizeKeyspaces(scheme);
            Assert.That(cluster.UpdateColumnFamilyInvokeCount, Is.EqualTo(1));
        }
 public void TestTryCreateColumnFamilyWithWrongChunkLength()
 {
     Assert.Throws <CassandraClientInvalidRequestException>(
         () => keyspaceConnection.AddColumnFamily(new ColumnFamily
     {
         Name        = TestSchemaUtils.GetRandomColumnFamilyName(),
         Compression = ColumnFamilyCompression.Deflate(new CompressionOptions {
             ChunkLengthInKb = 3
         })
     }));
 }
 private static bool CompareCompression(ColumnFamilyCompression lhs, ColumnFamilyCompression rhs)
 {
     if (lhs == null && rhs == null)
     {
         return(true);
     }
     if (lhs != null && rhs != null)
     {
         return(lhs.Algorithm == rhs.Algorithm && CompareCompressionOptions(lhs.Options, rhs.Options));
     }
     return(CompareCompression(lhs ?? ColumnFamilyCompression.Default, rhs ?? ColumnFamilyCompression.Default));
 }
        private void InternalTestCreateColumnFamilyCompression(ColumnFamilyCompression compression)
        {
            var name = TestSchemaUtils.GetRandomColumnFamilyName();
            var originalColumnFamily = new ColumnFamily
            {
                Name        = name,
                Compression = compression
            };

            keyspaceConnection.AddColumnFamily(originalColumnFamily);

            var columnFamily = keyspaceConnection.DescribeKeyspace().ColumnFamilies[name];

            Assert.That(columnFamily.Compression.Algorithm, Is.EqualTo(originalColumnFamily.Compression.Algorithm));
            if (originalColumnFamily.Compression.Options != null)
            {
                Assert.That(columnFamily.Compression.Options.ChunkLengthInKb, Is.EqualTo(originalColumnFamily.Compression.Options.ChunkLengthInKb));
            }
            else
            {
                Assert.That(columnFamily.Compression.Options, Is.Null);
            }
        }
 public void TestCompareColumnFamiliesByCompression()
 {
     Assert.That(
         !comparer.NeedUpdateColumnFamily(
             new ColumnFamily {
         Name = "name", Compression = ColumnFamilyCompression.Deflate(new CompressionOptions {
             ChunkLengthInKb = 2
         })
     },
             new ColumnFamily {
         Name = "name", Compression = ColumnFamilyCompression.Deflate(new CompressionOptions {
             ChunkLengthInKb = 2
         })
     })
         );
     Assert.That(
         comparer.NeedUpdateColumnFamily(
             new ColumnFamily {
         Name = "name", Compression = ColumnFamilyCompression.Deflate(new CompressionOptions {
             ChunkLengthInKb = 3
         })
     },
             new ColumnFamily {
         Name = "name", Compression = ColumnFamilyCompression.Deflate(new CompressionOptions {
             ChunkLengthInKb = 2
         })
     })
         );
     Assert.That(
         comparer.NeedUpdateColumnFamily(
             new ColumnFamily {
         Name = "name", Compression = ColumnFamilyCompression.Snappy(new CompressionOptions {
             ChunkLengthInKb = 2
         })
     },
             new ColumnFamily {
         Name = "name", Compression = ColumnFamilyCompression.Deflate(new CompressionOptions {
             ChunkLengthInKb = 2
         })
     })
         );
     Assert.That(
         comparer.NeedUpdateColumnFamily(
             new ColumnFamily {
         Name = "name", Compression = ColumnFamilyCompression.Snappy(new CompressionOptions {
             ChunkLengthInKb = 2
         })
     },
             new ColumnFamily {
         Name = "name", Compression = ColumnFamilyCompression.LZ4(new CompressionOptions {
             ChunkLengthInKb = 2
         })
     })
         );
     Assert.That(
         comparer.NeedUpdateColumnFamily(
             new ColumnFamily {
         Name = "name", Compression = ColumnFamilyCompression.None()
     },
             new ColumnFamily {
         Name = "name", Compression = ColumnFamilyCompression.Deflate(new CompressionOptions {
             ChunkLengthInKb = 2
         })
     })
         );
     Assert.That(
         !comparer.NeedUpdateColumnFamily(
             new ColumnFamily {
         Name = "name", Compression = null
     },
             new ColumnFamily {
         Name = "name", Compression = ColumnFamilyCompression.Deflate(new CompressionOptions {
             ChunkLengthInKb = 2
         })
     })
         );
     Assert.That(
         comparer.NeedUpdateColumnFamily(
             new ColumnFamily {
         Name = "name", Compression = ColumnFamilyCompression.Deflate(new CompressionOptions {
             ChunkLengthInKb = 2
         })
     },
             new ColumnFamily {
         Name = "name", Compression = null
     })
         );
     Assert.That(
         !comparer.NeedUpdateColumnFamily(
             new ColumnFamily {
         Name = "name", Compression = null
     },
             new ColumnFamily {
         Name = "name", Compression = ColumnFamilyCompression.Snappy(null)
     })
         );
 }