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.
34 lines
1.1 KiB
34 lines
1.1 KiB
using Model;
|
|
|
|
namespace TestDataManager;
|
|
|
|
public class DataManagerTest_WithTheoryDataAndClassData
|
|
{
|
|
[Theory]
|
|
[ClassData(typeof(TestData_BorrowBook_TheoryData))]
|
|
public async void TestBorrowBook(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(result)
|
|
{
|
|
Assert.NotNull(book);
|
|
Assert.NotNull(person);
|
|
Assert.Contains(book, person.Books);
|
|
Assert.Equal(person, book.Borrower);
|
|
}
|
|
else
|
|
{
|
|
if(person != null && book != null)
|
|
{
|
|
Assert.DoesNotContain(book, person.Books);
|
|
Assert.NotEqual(person, book.Borrower);
|
|
}
|
|
}
|
|
}
|
|
}
|