Beispiel #1
0
        public void Mutation()
        {
            // arrange
            var col1 = new FluentColumn <AsciiType> {
                ColumnName = "Test1", ColumnValue = 300M
            };
            var col2 = new FluentColumn <AsciiType> {
                ColumnName = "Test2", ColumnValue = "Hello"
            };

            // act
            var actual = new FluentColumnFamily <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);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="name"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        public override bool TrySetColumn(object name, object value)
        {
            var col          = Columns.FirstOrDefault(c => c.ColumnName == name);
            var mutationType = MutationType.Changed;

            // if column doesn't exisit create it and add it to the columns
            if (col == null)
            {
                mutationType = MutationType.Added;

                col = new FluentColumn <CompareWith>();
                ((FluentColumn <CompareWith>)col).ColumnName = CassandraType.GetType <CompareWith>(name);

                _columns.SupressChangeNotification = true;
                _columns.Add(col);
                _columns.SupressChangeNotification = false;
            }

            // set the column value
            col.ColumnValue = CassandraType.GetType <BytesType>(value);

            // notify the tracker that the column has changed
            OnColumnMutated(mutationType, col);

            return(true);
        }
        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.Equal(2, mutations.Count());
            Assert.Equal(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.Same(col1, mut1.Column);
            Assert.Same(col2, mut2.Column);

            Assert.Same(actual, mut1.Column.GetParent().SuperColumn);
            Assert.Same(actual, mut2.Column.GetParent().SuperColumn);
        }
        public void Constructor_Test()
        {
            // arrange
            var nameExpected      = "Test";
            var valueExpected     = 300.0;
            var timestampExpected = DateTime.Today;

            // act
            var actual = new FluentColumn <AsciiType> {
                ColumnName  = nameExpected,
                ColumnValue = valueExpected
            };

            // assert
            Assert.Equal(nameExpected, (string)actual.ColumnName);
            Assert.Equal(valueExpected, (double)actual.ColumnValue);
            Assert.Equal(timestampExpected, actual.ColumnTimestamp.LocalDateTime.Date);
        }
Beispiel #5
0
        public void Mutation_Removed()
        {
            // arrange
            var col1 = new FluentColumn <AsciiType> {
                ColumnName = "Test1", ColumnValue = 300M
            };

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

            actual.Columns.Add(col1);
            actual.RemoveColumn("Test1");

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

            Assert.AreEqual(2, mutations.Count());
            Assert.AreEqual(MutationType.Added, mutations[0].Type);
            Assert.AreEqual(MutationType.Removed, mutations[1].Type);
        }
Beispiel #6
0
        public void Constructor_Test()
        {
            // arrange
            var col1 = new FluentColumn <AsciiType> {
                ColumnName = "Test1", ColumnValue = 300M
            };
            var col2 = new FluentColumn <AsciiType> {
                ColumnName = "Test2", ColumnValue = "Hello"
            };

            // act
            var actual = new FluentColumnFamily <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.Equal(colName, (string)actual.ColumnName);
            Assert.Equal(2, actual.Columns.Count);
        }
Beispiel #8
0
        public void Mutation_Added()
        {
            // arrange
            var col1 = new FluentColumn <AsciiType> {
                ColumnName = "Test1", ColumnValue = 300M
            };
            var col2 = new FluentColumn <AsciiType> {
                ColumnName = "Test2", ColumnValue = "Hello"
            };

            // act
            var actual = new FluentColumnFamily <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));
        }
 public static void InsertColumn(this CassandraColumnFamily family, CassandraObject key, FluentColumn column)
 {
     InsertColumn(family, key, column.GetPath());
 }
 public FluentColumnPath(FluentColumnParent parent, FluentColumn column)
     : this(parent.ColumnFamily, parent.SuperColumn, column)
 {
 }
 public FluentColumnPath(IFluentBaseColumnFamily columnFamily, FluentSuperColumn superColumn, FluentColumn column)
     : base(columnFamily, superColumn)
 {
     Column = column;
 }