diff --git a/src/core/seller.cpp b/src/core/seller.cpp index ab83c55..5e7edae 100644 --- a/src/core/seller.cpp +++ b/src/core/seller.cpp @@ -22,7 +22,7 @@ inline void Seller::setNumberOfOfferedArticles(int number) { numberOfOfferedArti int Seller::getNumberOfOfferedArticles() const { return static_cast(articles_.size()); } -void Seller::addArticle(Article article) { articles_.push_back(article); } +void Seller::addArticle(std::shared_ptr
article) { articles_.push_back(article); } std::string Seller::getFirstName() const { return firstName_; } @@ -30,14 +30,14 @@ std::string Seller::getLastName() const { return lastName_; } int Seller::getSellerNo() const { return sellerNo_; } -std::vector Seller::getArticles(bool onlySold) +std::vector> Seller::getArticles(bool onlySold) { - std::vector articles; - for (auto& article : articles_) { - if (onlySold && article.isSold()) { - articles.push_back(&article); + std::vector> articles; + for (const auto article : articles_) { + if (onlySold && article->isSold()) { + articles.push_back(article); } else if (!onlySold) { - articles.push_back(&article); + articles.push_back(article); } } return articles; diff --git a/src/core/seller.h b/src/core/seller.h index eeeac29..63aebb2 100644 --- a/src/core/seller.h +++ b/src/core/seller.h @@ -4,6 +4,7 @@ #include "article.h" #include "entity.h" +#include #include #include @@ -20,20 +21,20 @@ class Seller : public Entity void setFirstName(const std::string& firstName); void setLastName(const std::string& lastName); void setNumberOfOfferedArticles(int number); - void addArticle(Article article); + void addArticle(std::shared_ptr
article); std::string getFirstName() const; std::string getLastName() const; int getSellerNo() const; int getNumberOfOfferedArticles() const; - std::vector getArticles(bool onlySold = false); + std::vector> getArticles(bool onlySold = false); private: int sellerNo_{-1}; int numberOfOfferedArticles_{}; std::string firstName_{}; std::string lastName_{}; - std::vector
articles_{}; + std::vector> articles_{}; }; #endif \ No newline at end of file diff --git a/test/test_database.cpp b/test/test_database.cpp index b963d8b..b2b4bf3 100644 --- a/test/test_database.cpp +++ b/test/test_database.cpp @@ -9,7 +9,6 @@ BOOST_AUTO_TEST_CASE(create_database) { - Database db(":memory:"); BOOST_CHECK_NO_THROW(db.init()); } diff --git a/test/test_seller.cpp b/test/test_seller.cpp index 5de2ed2..b389820 100644 --- a/test/test_seller.cpp +++ b/test/test_seller.cpp @@ -31,8 +31,8 @@ BOOST_AUTO_TEST_CASE(create_many) BOOST_AUTO_TEST_CASE(with_article) { Seller seller("Max", "Mustermann"); - Article article{}; - article.setDescription("Test article"); + auto article = std::make_shared
(); + article->setDescription("Test article"); seller.addArticle(article); BOOST_TEST(seller.getArticles().at(0)->getDescription() == "Test article"); } \ No newline at end of file