public void DateContext_Query_LastFunctionReturnsFirstElementMatchingPredicate() { var bookRev1 = BooksHelper.CreateBook(publishYear: 2012); BooksHelper.CreateBook(bookRev1.Name, 2013); var bookTable = Context.GetTable <Book>(); var booksQuery = from record in bookTable where record.Name == bookRev1.Name select record; var lastElement = booksQuery.Last(book => book.PublishYear == bookRev1.PublishYear); Assert.AreEqual(bookRev1.PublishYear, lastElement.PublishYear); }
public void DataContext_UpdateEntity_UpdatesRecordWhenOldRecordIsNull() { var book = BooksHelper.CreateBook(popularityRating: Book.Popularity.Average); var booksTable = this.Context.GetTable <Book>(); book.PopularityRating = Book.Popularity.High; ((ITableCudOperations)booksTable).UpdateEntity(book, null); var storedBook = booksTable.Find(book.Name, book.PublishYear); Assert.AreEqual(book.PopularityRating, storedBook.PopularityRating, "Record was not updated"); }
public void DateContext_Query_AllFunctionReturnsTrueIfAllElementsMatchPredicate() { var bookRev1 = BooksHelper.CreateBook(publishYear: 2012); BooksHelper.CreateBook(bookRev1.Name, 2013); var bookTable = Context.GetTable <Book>(); var booksQuery = from record in bookTable where record.Name == bookRev1.Name select record; var allResult = booksQuery.All(book => book.Name == bookRev1.Name); Assert.IsTrue(allResult); }
public void DataContext_EntityCreation_ThrowsExceptionWhenEntityPreviouslyStoredInDynamoDbWasQueriedInCurrentContext() { var book = BooksHelper.CreateBook(popularityRating: Book.Popularity.Average); var booksTable = this.Context.GetTable <Book>(); booksTable.Find(book.Name, book.PublishYear); book.PopularityRating = Book.Popularity.High; booksTable.InsertOnSubmit(book); this.Context.SubmitChanges(); }
public void DataContext_EntityCreation_PersistsRecordToDynamoDb() { var book = BooksHelper.CreateBook(persistToDynamoDb: false); var booksTable = this.Context.GetTable <Book>(); booksTable.InsertOnSubmit(book); this.Context.SubmitChanges(); var storedBook = booksTable.Find(book.Name, book.PublishYear); Assert.IsNotNull(storedBook); }
public async Task DateContext_Query_FirstOrDefaultFunctionReturnsDefaultValueIfNotFound() { var bookRev1 = await BooksHelper.CreateBookAsync(publishYear : 2012); await BooksHelper.CreateBookAsync(bookRev1.Name, 2013); var bookTable = Context.GetTable <Book>(); var booksQuery = from record in bookTable where record.Name == bookRev1.Name select record; var firstElement = booksQuery.FirstOrDefault(book => book.Name == null); Assert.IsNull(firstElement); }
public void DateContext_Query_ElementAtOrDefaultReturnsDefaultValueIfNotFound() { var bookRev1 = BooksHelper.CreateBook(publishYear: 2012); BooksHelper.CreateBook(bookRev1.Name, 2013); var bookTable = Context.GetTable <Book>(); var booksQuery = from record in bookTable where record.Name == bookRev1.Name select record; var positionedBook = booksQuery.ElementAtOrDefault(4); Assert.IsNull(positionedBook); }
public async Task DateContext_Query_LastFunctionReturnsFirstElementWithoutPredicate() { var bookRev1 = await BooksHelper.CreateBookAsync(publishYear : 2012); var bookRev2 = await BooksHelper.CreateBookAsync(bookRev1.Name, 2013); var bookTable = Context.GetTable <Book>(); var booksQuery = from record in bookTable where record.Name == bookRev1.Name select record; var lastElement = booksQuery.Last(); Assert.AreEqual(bookRev2.PublishYear, lastElement.PublishYear); }
public void DateContext_Query_LastOrDefaultFunctionReturnsDefaultValueIfNotFound() { var bookRev1 = BooksHelper.CreateBook(publishYear: 2012); BooksHelper.CreateBook(bookRev1.Name, 2013); var bookTable = Context.GetTable <Book>(); var booksQuery = from record in bookTable where record.Name == bookRev1.Name select record; var lastElement = booksQuery.LastOrDefault(book => book.Name == null); Assert.IsNull(lastElement); }
public async Task DataContext_EntityRemoval_RemovesExistingRecordFromDynamoDb() { var book = await BooksHelper.CreateBookAsync(); var booksTable = this.Context.GetTable <Book>(); booksTable.RemoveOnSubmit(book); await this.Context.SubmitChangesAsync(); var storedBooksCount = booksTable.Count(storedBook => storedBook.Name == book.Name); Assert.AreEqual(0, storedBooksCount, "Record was not deleted"); }
public async Task DataContext_EntityCreation_PersistsRecordToDynamoDb() { var book = await BooksHelper.CreateBookAsync(persistToDynamoDb : false); var booksTable = this.Context.GetTable <Book>(); booksTable.InsertOnSubmit(book); await this.Context.SubmitChangesAsync(); var storedBook = await booksTable.FindAsync(book.Name, book.PublishYear); Assert.IsNotNull(storedBook); }
public void DataContext_EntityCreation_ThrowsExceptionWhenTryingToAddSameEntityTwice() { var book = BooksHelper.CreateBook(popularityRating: Book.Popularity.Average, persistToDynamoDb: false); var booksTable = this.Context.GetTable <Book>(); booksTable.InsertOnSubmit(book); this.Context.SubmitChanges(); book.PopularityRating = Book.Popularity.High; booksTable.InsertOnSubmit(book); this.Context.SubmitChanges(); }
public async Task DateContext_QueryOperationConfigCanBeCustomized() { var bookRev1 = await BooksHelper.CreateBookAsync(publishYear : 2012, author : "Gogol"); await BooksHelper.CreateBookAsync(bookRev1.Name, 2013); var query = Context.GetTable <Book>().Where(b => b.Name == bookRev1.Name) .ConfigureQueryOperation(config => { config.FilterExpression = new Expression() { ExpressionStatement = "attribute_exists (Author)" }; }); Assert.AreEqual(1, query.Count()); }
public void DateContext_Query_ElementAtReturnsCorrectElement() { var bookRev1 = BooksHelper.CreateBook(publishYear: 2012); var bookRev2 = BooksHelper.CreateBook(bookRev1.Name, 2013); BooksHelper.CreateBook(bookRev1.Name, 2014); var bookTable = Context.GetTable <Book>(); var booksQuery = from record in bookTable where record.Name == bookRev1.Name select record; var positionedBook = booksQuery.ElementAt(1); Assert.AreEqual(bookRev2.PublishYear, positionedBook.PublishYear); }
public async Task DataContext_UpdateEntity_UpdatesRecordWhenOldRecordDoesNotMatchNewRecord() { var book = await BooksHelper.CreateBookAsync(popularityRating : Book.Popularity.Average); var booksTable = this.Context.GetTable <Book>(); var storedBook = await booksTable.FindAsync(book.Name, book.PublishYear); storedBook.PopularityRating = Book.Popularity.High; ((ITableCudOperations)booksTable).UpdateEntity(storedBook, book); var updatedBook = await booksTable.FindAsync(book.Name, book.PublishYear); Assert.AreEqual(storedBook.PopularityRating, updatedBook.PopularityRating, "Record was not updated"); }
public async Task DateContext_Query_SupportsToArray() { var book = await BooksHelper.CreateBookAsync(); var bookTable = Context.GetTable <Book>(); var booksQuery = from record in bookTable where record.Name == book.Name select record; var queryList = booksQuery.ToArray(); Assert.AreEqual(1, queryList.Length); var storedBook = queryList.First(); Assert.AreEqual(book.Name, storedBook.Name); }
public async Task DateContext_Query_CountFunctionReturnsCorrectNumberOfRecordsOnSmallDataSets() { const int DataSetLength = 20; var bookRev1 = await BooksHelper.CreateBookAsync(); await ParallelForAsync(1, DataSetLength, i => BooksHelper.CreateBookAsync(bookRev1.Name, bookRev1.PublishYear + i)); var numberOfRecordsInDb = Context.GetTable <Book>().Count(book => book.Name == bookRev1.Name); Assert.AreEqual(DataSetLength, numberOfRecordsInDb); numberOfRecordsInDb = Context.GetTable <Book>().ToListAsync().Result.Count(book => book.Name == bookRev1.Name); Assert.AreEqual(DataSetLength, numberOfRecordsInDb); }
public void DataContext_QueryByHashReturnsEqualResults() { BooksHelper.CreateBook("A"); BooksHelper.CreateBook("B"); BooksHelper.CreateBook("C"); var table = this.Context.GetTable <Book>(); foreach (var b in table.Where(b => b.Name.CompareTo("C") == 0)) { Debug.WriteLine(b.Name); } Debug.WriteLine("Finished"); }
public void DateContext_Query_SupportsToList() { var book = BooksHelper.CreateBook(); var bookTable = Context.GetTable <Book>(); var booksQuery = from record in bookTable where record.Name == book.Name select record; var queryList = booksQuery.ToList(); Assert.AreEqual(1, queryList.Count); var storedBook = queryList.First(); Assert.AreEqual(book.Name, storedBook.Name); }
public async Task DataContext_EntityCreation_ThrowsExceptionWhenEntityPreviouslyStoredInDynamoDbWasQueriedInCurrentContext() { var book = await BooksHelper.CreateBookAsync(popularityRating : Book.Popularity.Average); var booksTable = this.Context.GetTable <Book>(); await booksTable.FindAsync(book.Name, book.PublishYear); book.PopularityRating = Book.Popularity.High; booksTable.InsertOnSubmit(book); (await Should.ThrowAsync <InvalidOperationException>(() => this.Context.SubmitChangesAsync())).Message.ShouldContain( "cannot be added, because entity with that key already exists" ); }
public void DataContext_Query_ReturnsUninitializedFields() { var book = BooksHelper.CreateBook(publishYear: 2013); var bookTable = Context.GetTable <Book>(); var booksQuery = from record in bookTable where record.Name == book.Name select record; var storedBook = booksQuery.First(); Assert.AreEqual(book.NumPages, storedBook.NumPages, "Incorrect default value for int field"); Assert.AreEqual(book.PopularityRating, storedBook.PopularityRating, "Incorrect default value for enum (string) field"); Assert.AreEqual(book.UserFeedbackRating, storedBook.UserFeedbackRating, "Incorrect default value for enum (int) field"); Assert.AreEqual(book.LastRentTime.ToUniversalTime(), storedBook.LastRentTime.ToUniversalTime(), "Incorrect default value for DateTime field"); Assert.IsNull(storedBook.RentingHistory, "Incorrect default value for IList<string> field"); Assert.IsNull(storedBook.FilmsBasedOnBook, "Incorrect default value for IDictionary<string, TimeSpan> field"); }
private void FillGridFines() { dgvFineList.Rows.Clear(); foreach (var fine in FinesHelper.GetActiveFinesList()) { int row = dgvFineList.Rows.Add(); dgvFineList.Rows[row].Cells[0].Value = fine.FineID; dgvFineList.Rows[row].Cells[1].Value = fine.StudentID; dgvFineList.Rows[row].Cells[2].Value = fine.BookID; dgvFineList.Rows[row].Cells[3].Value = BooksHelper.GetBookNameByID(fine.BookID); dgvFineList.Rows[row].Cells[4].Value = fine.Date.ToString("dd MMMM yyyy"); dgvFineList.Rows[row].Cells[5].Value = fine.FineAmount; dgvFineList.Rows[row].Cells[6].Value = fine.RecivedAmount; row++; } }
public void DataContext_Query_ReturnsListArrays() { var book = BooksHelper.CreateBook(rentingHistory: new List <string> { "Marie", "Anna", "Alex" }); var bookTable = Context.GetTable <Book>(); var booksQuery = from record in bookTable where record.Name == book.Name select record; var storedBook = booksQuery.First(); Assert.IsNotNull(storedBook.RentingHistory, "Expected non-null string array"); var expectedSequence = string.Join(", ", book.RentingHistory.OrderBy(s => s)); var actualSequence = string.Join(", ", storedBook.RentingHistory.OrderBy(s => s)); Assert.AreEqual(expectedSequence, actualSequence, "String array elements sequence incorrect"); }
public void DataContext_EntityModification_UpdatesRecordWithNewValues() { var book = BooksHelper.CreateBook(popularityRating: Book.Popularity.Average, persistToDynamoDb: false); var booksTable = this.Context.GetTable <Book>(); booksTable.InsertOnSubmit(book); this.Context.SubmitChanges(); book.PopularityRating = Book.Popularity.High; this.Context.SubmitChanges(); var storedBook = booksTable.Find(book.Name, book.PublishYear); Assert.AreEqual(book.PopularityRating, storedBook.PopularityRating, "Record was not updated"); }
private void btnUpdate_Click(object sender, EventArgs e) { int selectIndex = dgvBookList.CurrentRow.Index; var bookID = dgvBookList.Rows[selectIndex].Cells[0].Value; var b = BooksHelper.GetBookByID(Convert.ToInt32(bookID)); b.NoOfCopies += Convert.ToInt32(txtNoOfCopies.Text); BooksHelper.Update(b); MessageBox.Show("Kitap Güncelleme Başarılı", "Library Management System", MessageBoxButtons.OK, MessageBoxIcon.Information); EnabledComponent(); ClearForm(); FillGrid(); }
private void FillGridBook(int studentID) { dgvIssueBookList.Rows.Clear(); foreach (var issueBook in IssueBooksHelper.GetIssueBookListFromStudentID(studentID)) { int row = dgvIssueBookList.Rows.Add(); dgvIssueBookList.Rows[row].Cells[0].Value = issueBook.IssueID; dgvIssueBookList.Rows[row].Cells[1].Value = issueBook.BookID; dgvIssueBookList.Rows[row].Cells[2].Value = BooksHelper.GetBookNameByID(issueBook.BookID); dgvIssueBookList.Rows[row].Cells[3].Value = StaffsHelper.GetByNameFromID(issueBook.StaffID); dgvIssueBookList.Rows[row].Cells[4].Value = issueBook.NoOfCopies; dgvIssueBookList.Rows[row].Cells[5].Value = issueBook.DateOfIssue.ToString("dd MMMM yyyy"); dgvIssueBookList.Rows[row].Cells[6].Value = issueBook.DateOfReturn.ToString("dd MMMM yyyy"); row++; } }
public void DateContext_Query_MinFunctionReturnsCorrectValue() { var bookRev1 = BooksHelper.CreateBook(publishYear: 2012); BooksHelper.CreateBook(bookRev1.Name, 2013); BooksHelper.CreateBook(bookRev1.Name, 2014); BooksHelper.CreateBook(bookRev1.Name, 2015); BooksHelper.CreateBook(bookRev1.Name, 2016); var bookTable = Context.GetTable <Book>(); var booksQuery = from record in bookTable where record.Name == bookRev1.Name select record; var maxPublishYear = booksQuery.Min(book => book.PublishYear); Assert.AreEqual(bookRev1.PublishYear, maxPublishYear); }
public void DataContext_Query_ReturnsCorrectRecordIfPositionedByRangeKey() { var bookRev1 = BooksHelper.CreateBook(publishYear: 2012); var bookRev2 = BooksHelper.CreateBook(bookRev1.Name, 2013); var bookTable = Context.GetTable <Book>(); var booksQuery = from record in bookTable where record.Name == bookRev1.Name && record.PublishYear == bookRev2.PublishYear select record; Assert.AreEqual(1, booksQuery.Count()); var storedBook = booksQuery.First(); Assert.AreEqual(bookRev2.Name, storedBook.Name, "Returned record does not contain the required HashKey"); Assert.AreEqual(bookRev2.PublishYear, storedBook.PublishYear, "Returned record does not contain the required RangeKey"); }
public async Task DataContext_EntityCreation_ThrowsExceptionWhenTryingToAddSameEntityTwice() { var book = await BooksHelper.CreateBookAsync(popularityRating : Book.Popularity.Average, persistToDynamoDb : false); var booksTable = this.Context.GetTable <Book>(); booksTable.InsertOnSubmit(book); await this.Context.SubmitChangesAsync(); book.PopularityRating = Book.Popularity.High; booksTable.InsertOnSubmit(book); (await Should.ThrowAsync <InvalidOperationException>(() => this.Context.SubmitChangesAsync())).Message.ShouldContain( "cannot be added, because entity with that key already exists" ); }
public async Task DataContext_Find_ReturnsExistingRecordWhenUsedWithHashAndRangeKeys() { var book = await BooksHelper.CreateBookAsync(publishYear : 1); await BooksHelper.CreateBookAsync(book.Name, book.PublishYear + 1); var bookTable = Context.GetTable <Book>(); var storedBook = await bookTable.FindAsync(book.Name, book.PublishYear); Assert.AreEqual(book.Name, storedBook.Name, "Book with wrong name was returned"); Assert.AreEqual(book.PublishYear, storedBook.PublishYear, "Book with wrong publishYear was returned"); var storedBook2 = bookTable.FindAsync(book.Name, book.PublishYear).Result; Assert.AreEqual(book.Name, storedBook2.Name, "Book with wrong name was returned"); Assert.AreEqual(book.PublishYear, storedBook2.PublishYear, "Book with wrong publishYear was returned"); }