diff --git a/samples/book-app-project-cs/Services/BookCollection.cs b/samples/book-app-project-cs/Services/BookCollection.cs index b219ba53..87ddef03 100644 --- a/samples/book-app-project-cs/Services/BookCollection.cs +++ b/samples/book-app-project-cs/Services/BookCollection.cs @@ -54,7 +54,7 @@ public Book AddBook(string title, string author, int year) return book; } - public List ListBooks() => _books; + public List ListBooks() => _books.ToList(); public Book? FindBookByTitle(string title) { diff --git a/samples/book-app-project-cs/Tests/BookCollectionTests.cs b/samples/book-app-project-cs/Tests/BookCollectionTests.cs index 2140e071..b9db43b8 100644 --- a/samples/book-app-project-cs/Tests/BookCollectionTests.cs +++ b/samples/book-app-project-cs/Tests/BookCollectionTests.cs @@ -68,6 +68,16 @@ public void RemoveBook_NonexistentBook_ShouldReturnFalse() Assert.False(result); } + [Fact] + public void ListBooks_ShouldReturnCopy_AndPreventExternalMutation() + { + _collection.AddBook("Dune", "Frank Herbert", 1965); + var books = _collection.ListBooks(); + books.Clear(); + + Assert.Single(_collection.Books); + } + // --- FindByAuthor --- [Fact]