You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
1.8 KiB

using System;
using Model;
namespace TestDataManager;
public class DataManagerTest_WithTheoryDataAndMemberData4
{
[Theory]
[MemberData(nameof(TestData_WithTheoryDataAndMemberData4.GetTestData_BorrowBook), parameters: true, MemberType = typeof(TestData_WithTheoryDataAndMemberData4))]
public async void TestBorrowBook_Success(bool expectedResult, Book bookToBorrow, Person borrower, IDataManager dataManager)
{
bool result = await dataManager.BorrowBook(bookToBorrow, borrower);
Book? book = (await dataManager.GetBooksByIsbn(bookToBorrow?.Isbn, 0, 100)).SingleOrDefault();
Person? person = (await dataManager.GetPersonsByName(borrower?.LastName, 0, 100)).SingleOrDefault();
Assert.Equal(expectedResult, result);
Assert.NotNull(book);
Assert.NotNull(person);
Assert.Contains(book, person.Books);
Assert.Equal(person, book.Borrower);
}
[Theory]
[MemberData(nameof(TestData_WithTheoryDataAndMemberData4.GetTestData_BorrowBook), parameters: false, MemberType = typeof(TestData_WithTheoryDataAndMemberData4))]
public async void TestBorrowBook_Fail(bool expectedResult, Book bookToBorrow, Person borrower, IDataManager dataManager)
{
bool result = await dataManager.BorrowBook(bookToBorrow, borrower);
Book? book = (await dataManager.GetBooksByIsbn(bookToBorrow?.Isbn, 0, 100)).SingleOrDefault();
Person? person = (await dataManager.GetPersonsByName(borrower?.LastName, 0, 100)).SingleOrDefault();
Assert.Equal(expectedResult, result);
if(person != null && book != null)
{
Assert.DoesNotContain(book, person.Books);
Assert.NotEqual(person, book.Borrower);
}
}
}