Example #1
0
        public async void InsertAsync_FluentPoco()
        {
            // Get a "new" user by using the test data from an existing user and changing the primary key
            TestUser user    = TestDataHelper.Users.First();
            var      newUser = new FluentUser
            {
                Id               = Guid.NewGuid(),
                Name             = user.Name,
                Age              = user.Age,
                CreatedDate      = user.CreatedDate,
                IsActive         = user.IsActive,
                LastLoginDate    = user.LastLoginDate,
                LoginHistory     = user.LoginHistory,
                LuckyNumbers     = user.LuckyNumbers,
                ChildrenAges     = user.ChildrenAges,
                FavoriteColor    = user.FavoriteColor,
                TypeOfUser       = user.TypeOfUser,
                PreferredContact = user.PreferredContactMethod,
                HairColor        = user.HairColor
            };

            // Insert the new user
            await CqlClient.InsertAsync(newUser);

            // Fetch and verify
            var foundUser = await CqlClient.SingleAsync <FluentUser>("WHERE userid = ?", newUser.Id);

            foundUser.ShouldBeEquivalentTo(newUser, opt => opt.AccountForTimestampAccuracy());
        }
Example #2
0
        public void InsertAsync_FluentPoco()
        {
            // Get a "new" user by using the test data from an existing user and changing the primary key
            var user    = TestDataHelper.GetUserList().First();
            var newUser = new FluentUser
            {
                Id               = Guid.NewGuid(),
                Name             = user.Name,
                Age              = user.Age,
                CreatedDate      = user.CreatedDate,
                IsActive         = user.IsActive,
                LastLoginDate    = user.LastLoginDate,
                LoginHistory     = user.LoginHistory,
                LuckyNumbers     = user.LuckyNumbers,
                ChildrenAges     = new Dictionary <string, int>(user.ChildrenAges),
                FavoriteColor    = user.FavoriteColor,
                TypeOfUser       = user.TypeOfUser,
                PreferredContact = user.PreferredContactMethod,
                HairColor        = user.HairColor
            };

            var sessionMock = new Mock <ISession>(MockBehavior.Strict);

            sessionMock.Setup(s => s.Keyspace).Returns <string>(null);
            sessionMock
            .Setup(s => s.ExecuteAsync(It.IsAny <BoundStatement>(), It.IsAny <string>()))
            .Returns(TaskHelper.ToTask(new RowSet()))
            .Verifiable();
            sessionMock
            .Setup(s => s.PrepareAsync(It.IsAny <string>()))
            .Returns <string>(cql => TaskHelper.ToTask(GetPrepared(cql)))
            .Verifiable();

            // Insert the new user
            var mappingClient = GetMappingClient(sessionMock);

            mappingClient.InsertAsync(newUser).Wait(3000);

            sessionMock.Verify(s => s.ExecuteAsync(It.Is <BoundStatement>(stmt =>
                                                                          stmt.QueryValues.Length > 0 &&
                                                                          stmt.PreparedStatement.Cql.StartsWith("INSERT INTO")
                                                                          ), It.IsAny <string>()), Times.Exactly(1));
            sessionMock.Verify();
        }