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");
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 10
0
        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");
        }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 12
0
        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);
        }
Ejemplo n.º 15
0
        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);
        }
Ejemplo n.º 18
0
        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);
        }
Ejemplo n.º 20
0
        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");
        }
Ejemplo n.º 22
0
 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");
        }
Ejemplo n.º 25
0
        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();
        }
Ejemplo n.º 26
0
 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++;
     }
 }
Ejemplo n.º 27
0
        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");
        }
Ejemplo n.º 29
0
        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");
        }