public void Dynamic_Mutation()
        {
            // arrange
            var col1 = new FluentSuperColumn<AsciiType, AsciiType> { ColumnName = "Test1" };
            var col2 = new FluentSuperColumn<AsciiType, AsciiType> { ColumnName = "Test2" };

            // act
            dynamic actual = new FluentSuperColumnFamily<AsciiType, AsciiType>("Keyspace1", "Standard1");
            actual.Test1 = col1;
            actual.Test2 = col2;

            // assert
            var mutations = ((IFluentRecord)actual).MutationTracker.GetMutations();

            Assert.AreEqual(2, mutations.Count());
            Assert.AreEqual(2, mutations.Count(x => x.Type == MutationType.Added));

            var mut1 = mutations.FirstOrDefault(x => x.Column.ColumnName == "Test1");
            var mut2 = mutations.FirstOrDefault(x => x.Column.ColumnName == "Test2");

            Assert.IsNotNull(mut1);
            Assert.IsNotNull(mut2);

            Assert.AreSame(actual, mut1.Column.GetParent().ColumnFamily);
            Assert.AreSame(actual, mut2.Column.GetParent().ColumnFamily);
        }
        public void Dynamic_Mutation()
        {
            // arrange
            var col1 = new FluentSuperColumn <AsciiType, AsciiType> {
                ColumnName = "Test1"
            };
            var col2 = new FluentSuperColumn <AsciiType, AsciiType> {
                ColumnName = "Test2"
            };

            // act
            dynamic actual = new FluentSuperColumnFamily <AsciiType, AsciiType>("Keyspace1", "Standard1");

            actual.Test1 = col1;
            actual.Test2 = col2;

            // assert
            var mutations = ((IFluentRecord)actual).MutationTracker.GetMutations();

            Assert.AreEqual(2, mutations.Count());
            Assert.AreEqual(2, mutations.Count(x => x.Type == MutationType.Added));

            var mut1 = mutations.FirstOrDefault(x => x.Column.ColumnName == "Test1");
            var mut2 = mutations.FirstOrDefault(x => x.Column.ColumnName == "Test2");

            Assert.IsNotNull(mut1);
            Assert.IsNotNull(mut2);

            Assert.AreSame(actual, mut1.Column.GetParent().ColumnFamily);
            Assert.AreSame(actual, mut2.Column.GetParent().ColumnFamily);
        }
        public void Dynamic_Mutation()
        {
            // arrange
            var colName = "This is a test name";
            var col1 = "Test1";
            var colValue1 = 300M;
            var col2 = "Test2";
            var colValue2 = "Hello";

            // act
            dynamic actual = new FluentSuperColumn<AsciiType, AsciiType>();
            actual.ColumnName = colName;
            actual.Test1 = colValue1;
            actual.Test2 = colValue2;

            // assert
            var mutations = ((IFluentRecord)actual).MutationTracker.GetMutations();

            Assert.AreEqual(2, mutations.Count());
            Assert.AreEqual(2, mutations.Count(x => x.Type == MutationType.Added));

            var mut1 = mutations.FirstOrDefault(x => x.Column.ColumnName == col1);
            var mut2 = mutations.FirstOrDefault(x => x.Column.ColumnName == col2);

            Assert.IsNotNull(mut1);
            Assert.IsNotNull(mut2);

            Assert.AreSame(actual, mut1.Column.GetParent().SuperColumn);
            Assert.AreSame(actual, mut2.Column.GetParent().SuperColumn);
        }
Example #4
0
        public static FluentSuperColumn ConvertSuperColumnToFluentSuperColumn(SuperColumn col, CassandraColumnFamilySchema schema)
        {
            var superColSchema = new CassandraColumnSchema {
                Name = col.Name
            };

            if (schema != null)
            {
                superColSchema = new CassandraColumnSchema {
                    NameType  = schema.SuperColumnNameType,
                    Name      = CassandraObject.GetCassandraObjectFromDatabaseByteArray(col.Name, schema.SuperColumnNameType),
                    ValueType = schema.ColumnNameType
                }
            }
            ;

            var superCol = new FluentSuperColumn(superColSchema)
            {
                ColumnName = CassandraObject.GetCassandraObjectFromDatabaseByteArray(col.Name, superColSchema.NameType)
            };

            ((ILoadable)superCol).BeginLoad();
            foreach (var xcol in col.Columns)
            {
                superCol.Columns.Add(ConvertColumnToFluentColumn(xcol, schema));
            }
            ((ILoadable)superCol).EndLoad();

            return(superCol);
        }
        public void Mutation()
        {
            // arrange
            var col1 = new FluentSuperColumn <AsciiType, AsciiType> {
                ColumnName = "Test1"
            };
            var col2 = new FluentSuperColumn <AsciiType, AsciiType> {
                ColumnName = "Test2"
            };

            // act
            var actual = new FluentSuperColumnFamily <AsciiType, AsciiType>("Keyspace1", "Standard1");

            actual.Columns.Add(col1);
            actual.Columns.Add(col2);

            // assert
            var mutations = actual.MutationTracker.GetMutations();

            Assert.AreEqual(2, mutations.Count());
            Assert.AreEqual(2, mutations.Count(x => x.Type == MutationType.Added));

            var mut1 = mutations.FirstOrDefault(x => x.Column.ColumnName == "Test1");
            var mut2 = mutations.FirstOrDefault(x => x.Column.ColumnName == "Test2");

            Assert.AreSame(col1, mut1.Column);
            Assert.AreSame(col2, mut2.Column);

            Assert.AreSame(actual, mut1.Column.GetParent().ColumnFamily);
            Assert.AreSame(actual, mut2.Column.GetParent().ColumnFamily);
        }
Example #6
0
        public override FluentSuperColumn <CompareWith, CompareSubcolumnWith> Execute()
        {
            var result = new FluentSuperColumn <CompareWith, CompareSubcolumnWith>(GetColumns(ColumnFamily));

            ColumnFamily.Context.Attach(result);
            result.MutationTracker.Clear();

            return(result);
        }
		public void Path_Set()
		{
			// arrange

			// act
			var actual = new FluentSuperColumn<AsciiType, AsciiType>();

			// assert
			Assert.Same(actual, actual.GetPath().SuperColumn);
		}
Example #8
0
        public void Path_Set()
        {
            // arrange

            // act
            var actual = new FluentSuperColumn <AsciiType, AsciiType>();

            // assert
            Assert.AreSame(actual, actual.GetPath().SuperColumn);
        }
        public override IEnumerable <FluentSuperColumnFamily> Execute()
        {
            var schema = ColumnFamily.GetSchema();

            var parent = new CassandraColumnParent {
                ColumnFamily = ColumnFamily.FamilyName
            };

            if (SuperColumnName != null)
            {
                parent.SuperColumn = SuperColumnName;
            }

            SlicePredicate = Helper.SetSchemaForSlicePredicate(SlicePredicate, schema, SuperColumnName == null);

            var output = Session.GetClient().multiget_slice(
                Keys,
                parent,
                SlicePredicate,
                Session.ReadConsistency
                );

            foreach (var result in output)
            {
                var key = CassandraObject.GetCassandraObjectFromDatabaseByteArray(result.Key, schema.KeyValueType);

                var superColumns = (IEnumerable <FluentSuperColumn>)null;

                if (SuperColumnName != null)
                {
                    var superColSchema = new CassandraColumnSchema {
                        NameType  = schema.SuperColumnNameType,
                        Name      = SuperColumnName,
                        ValueType = schema.ColumnNameType
                    };

                    var superCol = new FluentSuperColumn(superColSchema, result.Value.Select(col => Helper.ConvertColumnToFluentColumn(col.Column, schema)));
                    ColumnFamily.Context.Attach(superCol);

                    superColumns = new[] { superCol };
                }
                else
                {
                    superColumns = result.Value.Select(col => Helper.ConvertSuperColumnToFluentSuperColumn(col.Super_column, schema));
                }

                var familyName = ColumnFamily.FamilyName;
                var r          = new FluentSuperColumnFamily(key, familyName, schema, superColumns);
                ColumnFamily.Context.Attach(r);

                yield return(r);
            }
        }
Example #10
0
        public void Implicity_Cast_To_FluentSuperColumn()
        {
            // arranage
            var     expectedName        = "ShouldNotBeFound";
            var     expectedColumnCount = 0;
            dynamic family = new FluentSuperColumnFamily <AsciiType, AsciiType>("Test1", "SubTest1");

            // act
            FluentSuperColumn actual = family.ShouldNotBeFound;

            // assert
            Assert.Equal(expectedName, (string)actual.ColumnName);
            Assert.Equal(expectedColumnCount, actual.Columns.Count);
        }
        public void Get_NonExistent_Column()
        {
            // arrange
            var col1 = new FluentSuperColumn<AsciiType, AsciiType> { ColumnName = "Test1" };
            var col2 = new FluentSuperColumn<AsciiType, AsciiType> { ColumnName = "Test2" };

            // act
            dynamic family = new FluentSuperColumnFamily<AsciiType, AsciiType>("Keyspace1", "Standard1");
            family.Test1 = col1;
            family.Test2 = col2;
            var actual = family.Test3;

            // assert
            Assert.IsInstanceOfType(typeof(IFluentSuperColumn), actual);
        }
Example #12
0
        public static FluentSuperColumn <CompareWith, CompareSubcolumnWith> ConvertSuperColumnToFluentSuperColumn <CompareWith, CompareSubcolumnWith>(SuperColumn col)
            where CompareWith : CassandraType
            where CompareSubcolumnWith : CassandraType
        {
            var superCol = new FluentSuperColumn <CompareWith, CompareSubcolumnWith> {
                ColumnName = CassandraType.GetType <CompareWith>(col.Name)
            };

            foreach (var xcol in col.Columns)
            {
                superCol.Columns.Add(ConvertColumnToFluentColumn <CompareSubcolumnWith>(xcol));
            }

            return(superCol);
        }
        public void Constructor_Test()
        {
            // arrange
            var col1 = new FluentSuperColumn<AsciiType, AsciiType> { ColumnName = "Test1" };
            var col2 = new FluentSuperColumn<AsciiType, AsciiType> { ColumnName = "Test2" };

            // act
            var actual = new FluentSuperColumnFamily<AsciiType, AsciiType>("Keyspace1", "Standard1");
            actual.Columns.Add(col1);
            actual.Columns.Add(col2);

            // assert
            Assert.AreEqual(2, actual.Columns.Count);
            Assert.AreSame(col1.Family, actual);
            Assert.AreSame(col2.Family, actual);
        }
        public void Constructor_Test()
        {
            // arrange
            var colName = "This is a test name";
            var col1 = new FluentColumn<AsciiType> { ColumnName = "Test1", ColumnValue = 300M };
            var col2 = new FluentColumn<AsciiType> { ColumnName = "Test2", ColumnValue = "Hello" };

            // act
            var actual = new FluentSuperColumn<AsciiType, AsciiType>();
            actual.ColumnName = colName;
            actual.Columns.Add(col1);
            actual.Columns.Add(col2);

            // assert
            Assert.AreEqual(colName, (string)actual.ColumnName);
            Assert.AreEqual(2, actual.Columns.Count);
        }
Example #15
0
        public override IEnumerable <IFluentSuperColumn <CompareWith, CompareSubcolumnWith> > Execute(BaseCassandraColumnFamily columnFamily)
        {
            CassandraSession _localSession = null;

            if (CassandraSession.Current == null)
            {
                _localSession = new CassandraSession();
            }

            try
            {
                var parent = new ColumnParent {
                    Column_family = columnFamily.FamilyName
                };

                if (SuperColumnName != null)
                {
                    parent.Super_column = SuperColumnName;
                }

                var output = CassandraSession.Current.GetClient().multiget_slice(
                    Keys.ToByteArrayList(),
                    parent,
                    SlicePredicate.CreateSlicePredicate(),
                    CassandraSession.Current.ReadConsistency
                    );

                foreach (var result in output)
                {
                    var r = new FluentSuperColumn <CompareWith, CompareSubcolumnWith>(result.Value.Select(col => {
                        return(Helper.ConvertColumnToFluentColumn <CompareSubcolumnWith>(col.Column));
                    }));
                    columnFamily.Context.Attach(r);
                    r.MutationTracker.Clear();

                    yield return(r);
                }
            }
            finally
            {
                if (_localSession != null)
                {
                    _localSession.Dispose();
                }
            }
        }
Example #16
0
        public void Get_NonExistent_Column()
        {
            // arrange
            var    colName   = "This is a test name";
            var    colValue1 = 300M;
            var    colValue2 = "Hello";
            string expected  = null;

            // act
            dynamic superColumn = new FluentSuperColumn <AsciiType, AsciiType>();

            superColumn.Name  = colName;
            superColumn.Test1 = colValue1;
            superColumn.Test2 = colValue2;
            var actual = superColumn.Test3;

            // assert
            Assert.AreEqual(expected, actual);
        }
        public void Constructor_Dynamic_Test()
        {
            // arrange
            var col1 = new FluentSuperColumn<AsciiType, AsciiType> { ColumnName = "Test1" };
            var col2 = new FluentSuperColumn<AsciiType, AsciiType> { ColumnName = "Test2" };

            // act
            dynamic actual = new FluentSuperColumnFamily<AsciiType, AsciiType>("Keyspace1", "Standard1");
            actual.Test1 = col1;
            actual.Test2 = col2;

            // assert
            Assert.AreEqual(col1, actual.Test1);
            Assert.AreEqual(col1, actual["Test1"]);
            Assert.AreEqual(col2, actual.Test2);
            Assert.AreEqual(col2, actual["Test2"]);
            Assert.AreSame(col1.Family, actual);
            Assert.AreSame(col2.Family, actual);
        }
        public void Get_NonExistent_Column()
        {
            // arrange
            var col1 = new FluentSuperColumn <AsciiType, AsciiType> {
                ColumnName = "Test1"
            };
            var col2 = new FluentSuperColumn <AsciiType, AsciiType> {
                ColumnName = "Test2"
            };

            // act
            dynamic family = new FluentSuperColumnFamily <AsciiType, AsciiType>("Keyspace1", "Standard1");

            family.Test1 = col1;
            family.Test2 = col2;
            var actual = family.Test3;

            // assert
            Assert.IsInstanceOfType(typeof(IFluentSuperColumn), actual);
        }
        public void Constructor_Test()
        {
            // arrange
            var col1 = new FluentSuperColumn <AsciiType, AsciiType> {
                ColumnName = "Test1"
            };
            var col2 = new FluentSuperColumn <AsciiType, AsciiType> {
                ColumnName = "Test2"
            };

            // act
            var actual = new FluentSuperColumnFamily <AsciiType, AsciiType>("Keyspace1", "Standard1");

            actual.Columns.Add(col1);
            actual.Columns.Add(col2);

            // assert
            Assert.AreEqual(2, actual.Columns.Count);
            Assert.AreSame(col1.Family, actual);
            Assert.AreSame(col2.Family, actual);
        }
Example #20
0
        public void Constructor_Test()
        {
            // arrange
            var colName = "This is a test name";
            var col1    = new FluentColumn <AsciiType> {
                ColumnName = "Test1", ColumnValue = 300M
            };
            var col2 = new FluentColumn <AsciiType> {
                ColumnName = "Test2", ColumnValue = "Hello"
            };

            // act
            var actual = new FluentSuperColumn <AsciiType, AsciiType>();

            actual.ColumnName = colName;
            actual.Columns.Add(col1);
            actual.Columns.Add(col2);

            // assert
            Assert.AreEqual(colName, (string)actual.ColumnName);
            Assert.AreEqual(2, actual.Columns.Count);
        }
        public void Constructor_Dynamic_Test()
        {
            // arrange
            var colName = "This is a test name";
            var col1 = "Test1";
            var colValue1 = 300M;
            var col2 = "Test2";
            var colValue2 = "Hello";

            // act
            dynamic actual = new FluentSuperColumn<AsciiType, AsciiType>();
            actual.Name = colName;
            actual.Test1 = colValue1;
            actual.Test2 = colValue2;

            // assert
            Assert.AreEqual(colName, (string)actual.Name);
            //Assert.AreEqual(2, actual.Columns.Count);
            Assert.AreEqual(colValue1, (decimal)actual.Test1);
            Assert.AreEqual(colValue1, (decimal)actual[col1]);
            Assert.AreEqual(colValue2, (string)actual.Test2);
            Assert.AreEqual(colValue2, (string)actual[col2]);
        }
Example #22
0
        public void Constructor_Dynamic_Test()
        {
            // arrange
            var colName   = "This is a test name";
            var col1      = "Test1";
            var colValue1 = 300M;
            var col2      = "Test2";
            var colValue2 = "Hello";

            // act
            dynamic actual = new FluentSuperColumn <AsciiType, AsciiType>();

            actual.Name  = colName;
            actual.Test1 = colValue1;
            actual.Test2 = colValue2;

            // assert
            Assert.AreEqual(colName, (string)actual.Name);
            //Assert.AreEqual(2, actual.Columns.Count);
            Assert.AreEqual(colValue1, (decimal)actual.Test1);
            Assert.AreEqual(colValue1, (decimal)actual[col1]);
            Assert.AreEqual(colValue2, (string)actual.Test2);
            Assert.AreEqual(colValue2, (string)actual[col2]);
        }
        public void Constructor_Dynamic_Test()
        {
            // arrange
            var col1 = new FluentSuperColumn <AsciiType, AsciiType> {
                ColumnName = "Test1"
            };
            var col2 = new FluentSuperColumn <AsciiType, AsciiType> {
                ColumnName = "Test2"
            };

            // act
            dynamic actual = new FluentSuperColumnFamily <AsciiType, AsciiType>("Keyspace1", "Standard1");

            actual.Test1 = col1;
            actual.Test2 = col2;

            // assert
            Assert.AreEqual(col1, actual.Test1);
            Assert.AreEqual(col1, actual["Test1"]);
            Assert.AreEqual(col2, actual.Test2);
            Assert.AreEqual(col2, actual["Test2"]);
            Assert.AreSame(col1.Family, actual);
            Assert.AreSame(col2.Family, actual);
        }
Example #24
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="columnFamily"></param>
 /// <param name="superColumn"></param>
 /// <param name="column"></param>
 public FluentColumnParent(IFluentBaseColumnFamily columnFamily, FluentSuperColumn superColumn)
 {
     ColumnFamily = columnFamily;
     SuperColumn  = superColumn;
 }
Example #25
0
 public FluentColumnPath(IFluentBaseColumnFamily columnFamily, FluentSuperColumn superColumn, FluentCounterColumn column)
     : base(columnFamily, superColumn)
 {
     CounterColumn = column;
 }
        public void Get_NonExistent_Column()
        {
            // arrange
            var colName = "This is a test name";
            var colValue1 = 300M;
            var colValue2 = "Hello";
            string expected = null;

            // act
            dynamic superColumn = new FluentSuperColumn<AsciiType, AsciiType>();
            superColumn.Name = colName;
            superColumn.Test1 = colValue1;
            superColumn.Test2 = colValue2;
            var actual = superColumn.Test3;

            // assert
            Assert.AreEqual(expected, actual);
        }
        public void Mutation()
        {
            // arrange
            var colName = "This is a test name";
            var col1 = new FluentColumn<AsciiType> { ColumnName = "Test1", ColumnValue = 300M };
            var col2 = new FluentColumn<AsciiType> { ColumnName = "Test2", ColumnValue = "Hello" };

            // act
            var actual = new FluentSuperColumn<AsciiType, AsciiType>();
            actual.ColumnName = colName;
            actual.Columns.Add(col1);
            actual.Columns.Add(col2);

            // assert
            var mutations = actual.MutationTracker.GetMutations();

            Assert.AreEqual(2, mutations.Count());
            Assert.AreEqual(2, mutations.Count(x => x.Type == MutationType.Added));

            var mut1 = mutations.FirstOrDefault(x => x.Column.ColumnName == "Test1");
            var mut2 = mutations.FirstOrDefault(x => x.Column.ColumnName == "Test2");

            Assert.AreSame(col1, mut1.Column);
            Assert.AreSame(col2, mut2.Column);

            Assert.AreSame(actual, mut1.Column.GetParent().SuperColumn);
            Assert.AreSame(actual, mut2.Column.GetParent().SuperColumn);
        }
        public void Mutation()
        {
            // arrange
            var col1 = new FluentSuperColumn<AsciiType, AsciiType> { ColumnName = "Test1" };
            var col2 = new FluentSuperColumn<AsciiType, AsciiType> { ColumnName = "Test2" };

            // act
            var actual = new FluentSuperColumnFamily<AsciiType, AsciiType>("Keyspace1", "Standard1");
            actual.Columns.Add(col1);
            actual.Columns.Add(col2);

            // assert
            var mutations = actual.MutationTracker.GetMutations();

            Assert.AreEqual(2, mutations.Count());
            Assert.AreEqual(2, mutations.Count(x => x.Type == MutationType.Added));

            var mut1 = mutations.FirstOrDefault(x => x.Column.ColumnName == "Test1");
            var mut2 = mutations.FirstOrDefault(x => x.Column.ColumnName == "Test2");

            Assert.AreSame(col1, mut1.Column);
            Assert.AreSame(col2, mut2.Column);

            Assert.AreSame(actual, mut1.Column.GetParent().ColumnFamily);
            Assert.AreSame(actual, mut2.Column.GetParent().ColumnFamily);
        }
Example #29
0
        public static FluentSuperColumn ConvertSuperColumnToFluentSuperColumn(SuperColumn col, CassandraColumnFamilySchema schema = null)
        {
            var superColSchema = new CassandraColumnSchema {
                Name = col.Name
            };

            if (schema != null)
                superColSchema = new CassandraColumnSchema {
                    NameType = schema.SuperColumnNameType,
                    Name = CassandraObject.GetTypeFromDatabaseValue(col.Name, schema.SuperColumnNameType),
                    ValueType = schema.ColumnNameType
                };

            var superCol = new FluentSuperColumn(superColSchema) {
                ColumnName = CassandraObject.GetTypeFromDatabaseValue(col.Name, superColSchema.NameType)
            };

            foreach (var xcol in col.Columns)
                superCol.Columns.Add(ConvertColumnToFluentColumn(xcol, schema));

            return superCol;
        }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="columnFamily"></param>
 /// <param name="superColumn"></param>
 /// <param name="column"></param>
 public FluentColumnParent(IFluentBaseColumnFamily columnFamily, FluentSuperColumn superColumn)
 {
     ColumnFamily = columnFamily;
     SuperColumn = superColumn;
 }
Example #31
0
        public static FluentSuperColumn ConvertSuperColumnToFluentCounterSuperColumn(CounterSuperColumn col, CassandraColumnFamilySchema schema)
        {
            var superColSchema = new CassandraColumnSchema {
                Name = col.Name
            };

            if (schema != null)
                superColSchema = new CassandraColumnSchema {
                    NameType = schema.SuperColumnNameType,
                    Name = CassandraObject.GetCassandraObjectFromDatabaseByteArray(col.Name, schema.SuperColumnNameType),
                    ValueType = schema.ColumnNameType
                };

            var superCol = new FluentSuperColumn(superColSchema) {
                ColumnName = CassandraObject.GetCassandraObjectFromDatabaseByteArray(col.Name, superColSchema.NameType)
            };

            ((ILoadable)superCol).BeginLoad();
            foreach (var xcol in col.Columns)
                superCol.Columns.Add(ConvertColumnToFluentCounterColumn(xcol, schema));
            ((ILoadable)superCol).EndLoad();

            return superCol;
        }
 public FluentColumnPath(IFluentBaseColumnFamily columnFamily, FluentSuperColumn superColumn, FluentCounterColumn column)
     : base(columnFamily, superColumn)
 {
     CounterColumn = column;
 }