public void LinqFirstOrDefault_NoSuchRecord(bool async) { var randomStr = ConstantReturningHelper.FromObj(Randomm.RandomAlphaNum(10)); TestCluster.PrimeFluent( b => b.WhenQuery( "SELECT \"director\", \"list\", \"mainGuy\", \"movie_maker\", \"unique_movie_title\", \"yearMade\" " + $"FROM \"{Movie.TableName}\" WHERE \"director\" = ? LIMIT ? ALLOW FILTERING", rows => rows.WithParams("non_existant_" + randomStr.Get(), 1)) .ThenRowsSuccess(Movie.GetColumns())); var firstQuery = _movieTable.FirstOrDefault(m => m.Director == "non_existant_" + randomStr.Get()); var first = async ? firstQuery.ExecuteAsync().Result : firstQuery.Execute(); Assert.IsNull(first); }
public void DeleteIf_NotAllKeysRestricted_PartitionKeyOmitted() { var random = ConstantReturningHelper.FromObj(Guid.NewGuid()); var table = new Table <AllDataTypesEntity>(Session, new MappingConfiguration()); AllDataTypesEntity entityToDelete = _entityList[0]; TestCluster.PrimeFluent( b => b.WhenQuery($"DELETE FROM \"{AllDataTypesEntity.TableName}\" WHERE \"guid_type\" = ? IF \"int_type\" = ?", when => when.WithParams(random.Get(), entityToDelete.IntType)) .ThenServerError(ServerError.Invalid, "msg")); // Test var selectQuery = table.Select(m => m).Where(m => m.GuidType == random.Get()); var deleteIfQuery = selectQuery.DeleteIf(m => m.IntType == entityToDelete.IntType); Assert.Throws <InvalidQueryException>(() => deleteIfQuery.Execute()); }
public void DeleteIf_ConditionFails() { var random = ConstantReturningHelper.FromObj(Randomm.RandomAlphaNum(16)); var table = new Table <Movie>(Session, new MappingConfiguration()); Movie actualMovie = Movie.GetRandomMovie(); TestCluster.PrimeFluent( b => b.WhenQuery( $"DELETE FROM \"{Movie.TableName}\" WHERE \"unique_movie_title\" = ? AND \"movie_maker\" = ? AND \"director\" = ? IF \"mainGuy\" = ?", when => when.WithParams(actualMovie.Title, actualMovie.MovieMaker, actualMovie.Director, random.Get())) .ThenRowsSuccess(actualMovie.CreateAppliedInfoRowsResult())); var deleteIfStatement = table .Where(m => m.Title == actualMovie.Title && m.MovieMaker == actualMovie.MovieMaker && m.Director == actualMovie.Director) .DeleteIf(m => m.MainActor == random.Get()); var appliedInfo = deleteIfStatement.Execute(); Assert.False(appliedInfo.Applied); Assert.NotNull(appliedInfo.Existing); Assert.AreEqual(actualMovie.MainActor, appliedInfo.Existing.MainActor); }
public void DeleteIf_NoMatchingRecord() { var random = ConstantReturningHelper.FromObj(Randomm.RandomAlphaNum(10)); var randomGuid = ConstantReturningHelper.FromObj(Guid.NewGuid()); var table = new Table <AllDataTypesEntity>(Session, new MappingConfiguration()); AllDataTypesEntity entityToDelete = _entityList[0]; TestCluster.PrimeFluent( b => b.WhenQuery($"DELETE FROM \"{AllDataTypesEntity.TableName}\" WHERE \"string_type\" = ? AND \"guid_type\" = ? IF \"int_type\" = ?", when => when.WithParams(entityToDelete.StringType + random.Get(), randomGuid.Get(), entityToDelete.IntType)) .ThenRowsSuccess(new [] { "[applied]" }, rows => rows.WithRow(false))); // Test var selectQuery = table.Select(m => m) .Where(m => m.StringType == entityToDelete.StringType + random.Get() && m.GuidType == randomGuid.Get()); var deleteIfQuery = selectQuery.DeleteIf(m => m.IntType == entityToDelete.IntType); var appliedInfo = deleteIfQuery.Execute(); Assert.False(appliedInfo.Applied); Assert.IsNull(appliedInfo.Existing); }