コード例 #1
0
        public void Dynamic_Mutation()
        {
            // arrange
            var col1 = "Test1";
            var colValue1 = 300M;
            var col2 = "Test2";
            var colValue2 = "Hello";

            // act
            dynamic actual = new FluentColumnFamily<AsciiType>("Keyspace1", "Standard1");
            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().ColumnFamily);
            Assert.AreSame(actual, mut2.Column.GetParent().ColumnFamily);
        }
コード例 #2
0
		public void Dynamic_Mutation()
		{
			// arrange
			var col1 = "Test1";
			var colValue1 = 300M;
			var col2 = "Test2";
			var colValue2 = "Hello";

			// act
			dynamic actual = new FluentColumnFamily<AsciiType>("Keyspace1", "Standard1");
			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().ColumnFamily);
			Assert.AreSame(actual, mut2.Column.GetParent().ColumnFamily);
		}
コード例 #3
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);
		}
コード例 #4
0
        public override IFluentColumnFamily <CompareWith> Execute(BaseCassandraColumnFamily columnFamily)
        {
            var result = new FluentColumnFamily <CompareWith>(Key, columnFamily.FamilyName, GetColumns(columnFamily));

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

            return(result);
        }
コード例 #5
0
		public void Path_Set()
		{
			// arrange

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

			// assert
			Assert.AreSame(actual, actual.GetPath().ColumnFamily);
		}
コード例 #6
0
		public void Path_Set()
		{
			// arrange

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

			// assert
			Assert.Same(actual, actual.GetPath().ColumnFamily);
		}
コード例 #7
0
ファイル: NullTypeTest.cs プロジェクト: tjake/fluentcassandra
        public void Implicity_Cast_To_Int64()
        {
            // arranage
            long?   expected = null;
            dynamic family   = new FluentColumnFamily <AsciiType>("Test1", "Test1");

            // act
            long?actual = family.ShouldNotBeFound;

            // assert
            Assert.Equal(expected, actual);
        }
コード例 #8
0
		public void Implicity_Cast_To_Int64()
		{
			// arrange
			long? expected = null;
			dynamic family = new FluentColumnFamily<AsciiType>("Test1", "Test1");

			// act
			long? actual = family.ShouldNotBeFound;

			// assert
			Assert.Equal(expected, actual);
		}
コード例 #9
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);
		}
コード例 #10
0
		public void Get_NonExistent_Column()
		{
			// arrange
			var colValue1 = 300M;
			var colValue2 = "Hello";
			var expected = (string)null;

			// act
			dynamic family = new FluentColumnFamily<AsciiType>("Keyspace1", "Standard1");
			family.Test1 = colValue1;
			family.Test2 = colValue2;
			var actual = family.Test3;

			// assert
			Assert.Equal(expected, (string)actual);
		}
コード例 #11
0
		public void Get_NonExistent_Column()
		{
			// arrange
			var colValue1 = 300M;
			var colValue2 = "Hello";
			string expected = null;

			// act
			dynamic family = new FluentColumnFamily<AsciiType>("Keyspace1", "Standard1");
			family.Test1 = colValue1;
			family.Test2 = colValue2;
			var actual = family.Test3;

			// assert
			Assert.AreEqual(expected, actual);
		}
コード例 #12
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.Equal(2, actual.Columns.Count);
			Assert.Same(col1.Family, actual);
			Assert.Same(col2.Family, actual);
		}
コード例 #13
0
		public void Constructor_Dynamic_Test()
		{
			// arrange
			var col1 = "Test1";
			var colValue1 = 300M;
			var col2 = "Test2";
			var colValue2 = "Hello";

			// act
			dynamic actual = new FluentColumnFamily<AsciiType>("Keyspace1", "Standard1");
			actual.Test1 = colValue1;
			actual.Test2 = colValue2;

			// assert
			Assert.Equal(colValue1, (decimal)actual.Test1);
			Assert.Equal(colValue1, (decimal)actual[col1]);
			Assert.Equal(colValue2, (string)actual.Test2);
			Assert.Equal(colValue2, (string)actual[col2]);
		}
コード例 #14
0
		public void Constructor_Dynamic_Test()
		{
			// arrange
			var col1 = "Test1";
			var colValue1 = 300M;
			var col2 = "Test2";
			var colValue2 = "Hello";

			// act
			dynamic actual = new FluentColumnFamily<AsciiType>("Keyspace1", "Standard1");
			actual.Test1 = colValue1;
			actual.Test2 = colValue2;

			// assert
			Assert.AreEqual(colValue1, (decimal)actual.Test1);
			Assert.AreEqual(colValue1, (decimal)actual[col1]);
			Assert.AreEqual(colValue2, (string)actual.Test2);
			Assert.AreEqual(colValue2, (string)actual[col2]);
		}
コード例 #15
0
        private IEnumerable <IFluentColumnFamily <CompareWith> > GetFamilies(BaseCassandraColumnFamily columnFamily)
        {
            CassandraSession _localSession = null;

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

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

                var output = CassandraSession.Current.GetClient().get_indexed_slices(
                    parent,
                    IndexClause.CreateIndexClause(),
                    SlicePredicate.CreateSlicePredicate(),
                    CassandraSession.Current.ReadConsistency
                    );

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

                    yield return(r);
                }
            }
            finally
            {
                if (_localSession != null)
                {
                    _localSession.Dispose();
                }
            }
        }
コード例 #16
0
        public override IEnumerable <IFluentColumnFamily <CompareWith> > Execute(BaseCassandraColumnFamily columnFamily)
        {
            CassandraSession _localSession = null;

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

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

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

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

                    yield return(r);
                }
            }
            finally
            {
                if (_localSession != null)
                {
                    _localSession.Dispose();
                }
            }
        }
コード例 #17
0
		public void Dynamic_Mutation_Removed()
		{
			// arrange
			var colValue1 = 300M;

			// act
			dynamic actual = new FluentColumnFamily<AsciiType>("Keyspace1", "Standard1");
			actual.Test1 = colValue1;
			actual.RemoveColumn("Test1");

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

			Assert.Equal(2, mutations.Count());
			Assert.Equal(MutationType.Added, mutations[0].Type);
			Assert.Equal(MutationType.Removed, mutations[1].Type);
		}
コード例 #18
0
		public void Dynamic_Mutation_Added()
		{
			// arrange
			var colValue1 = 300M;
			var colValue2 = "Hello";

			// act
			dynamic actual = new FluentColumnFamily<AsciiType>("Keyspace1", "Standard1");
			actual.Test1 = colValue1;
			actual.Test2 = colValue2;

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

			Assert.Equal(2, mutations.Count());
			Assert.Equal(2, mutations.Count(x => x.Type == MutationType.Added));
		}
コード例 #19
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.Equal(2, mutations.Count());
			Assert.Equal(MutationType.Added, mutations[0].Type);
			Assert.Equal(MutationType.Removed, mutations[1].Type);
		}
コード例 #20
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.Equal(2, mutations.Count());
			Assert.Equal(2, mutations.Count(x => x.Type == MutationType.Added));
		}
コード例 #21
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.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().ColumnFamily);
			Assert.Same(actual, mut2.Column.GetParent().ColumnFamily);
		}
コード例 #22
0
ファイル: Helper.cs プロジェクト: DerekLiang/fluentcassandra
 public static FluentColumn <CompareWith> ConvertColumnToFluentColumn <CompareWith>(Column col, FluentColumnFamily <CompareWith> family = null)
     where CompareWith : CassandraType
 {
     return(new FluentColumn <CompareWith> {
         ColumnName = CassandraType.GetType <CompareWith>(col.Name),
         ColumnValue = col.Value,
         ColumnTimestamp = new DateTimeOffset(col.Timestamp, TimeSpan.Zero),
         ColumnTimeToLive = col.Ttl,
         Family = family
     });
 }