Skip to content

Commit

Permalink
Fixes for CI/CD and added clang formatting to src files
Browse files Browse the repository at this point in the history
  • Loading branch information
BaqWin committed Mar 13, 2024
1 parent dc85424 commit cfeb87e
Show file tree
Hide file tree
Showing 7 changed files with 118 additions and 78 deletions.
17 changes: 11 additions & 6 deletions src/app/doctor/doctor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,24 @@
#include "../visit/visit.hpp"
#include <stdexcept>

Doctor::Doctor(std::string firstName, std::string lastName, std::string pesel)
: Person(firstName, lastName, pesel){}
Doctor::Doctor(std::string firstName, std::string lastName, std::string pesel) : Person(firstName, lastName, pesel)
{
}

void Doctor::addAssociation(std::shared_ptr<Visit> visit){
if(visit == nullptr){
void Doctor::addAssociation(std::shared_ptr<Visit> visit)
{
if (visit == nullptr)
{
throw std::invalid_argument("Argument points to nullptr");
}
if(visitAssociation_.find(visit) == visitAssociation_.end()){
if (visitAssociation_.find(visit) == visitAssociation_.end())
{
visitAssociation_.insert(visit);
visit->setAssociation(shared_from_this());
}
}

std::unordered_set<std::shared_ptr<Visit>> Doctor::getVisitAssociations(){
std::unordered_set<std::shared_ptr<Visit>> Doctor::getVisitAssociations()
{
return visitAssociation_;
}
14 changes: 8 additions & 6 deletions src/app/doctor/doctor.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,13 @@

class Visit;

class Doctor : public Person, public std::enable_shared_from_this<Doctor>{
std::unordered_set<std::shared_ptr<Visit>> visitAssociation_;
public:
Doctor(std::string firstName, std::string lastName, std::string pesel);
class Doctor : public Person, public std::enable_shared_from_this<Doctor>
{
std::unordered_set<std::shared_ptr<Visit>> visitAssociation_;

void addAssociation(std::shared_ptr<Visit> visit);
std::unordered_set<std::shared_ptr<Visit>> getVisitAssociations();
public:
Doctor(std::string firstName, std::string lastName, std::string pesel);

void addAssociation(std::shared_ptr<Visit> visit);
std::unordered_set<std::shared_ptr<Visit>> getVisitAssociations();
};
27 changes: 18 additions & 9 deletions src/app/person/person.cpp
Original file line number Diff line number Diff line change
@@ -1,34 +1,43 @@
#include "person.hpp"

Person::Person(std::string firstName, std::string lastName, std::string pesel){
Person::Person(std::string firstName, std::string lastName, std::string pesel)
{
setFirstName(firstName);
setLastName(lastName);
setPesel(pesel);
}

Person::~Person(){}
Person::~Person()
{
}

void Person::setFirstName(std::string firstName){
void Person::setFirstName(std::string firstName)
{
firstName_ = firstName;
}

std::string Person::getFirstName(){
std::string Person::getFirstName()
{
return firstName_;
}

void Person::setLastName(std::string lastName){
void Person::setLastName(std::string lastName)
{
lastName_ = lastName;
}

std::string Person::getLastName(){
std::string Person::getLastName()
{
return lastName_;
}

void Person::setPesel(std::string pesel){
//TODO Validation
void Person::setPesel(std::string pesel)
{
// TODO Validation
pesel_ = pesel;
}

std::string Person::getPesel(){
std::string Person::getPesel()
{
return pesel_;
}
28 changes: 15 additions & 13 deletions src/app/person/person.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,20 @@
#include <memory>
#include <string>

class Person{
std::string firstName_;
std::string lastName_;
std::string pesel_;
public:
Person(std::string firstName, std::string lastName, std::string pesel);
virtual ~Person();
class Person
{
std::string firstName_;
std::string lastName_;
std::string pesel_;

public:
Person(std::string firstName, std::string lastName, std::string pesel);
virtual ~Person();

void setFirstName(std::string firstName);
std::string getFirstName();
void setLastName(std::string lastName);
std::string getLastName();
void setPesel(std::string pesel);
std::string getPesel();
void setFirstName(std::string firstName);
std::string getFirstName();
void setLastName(std::string lastName);
std::string getLastName();
void setPesel(std::string pesel);
std::string getPesel();
};
38 changes: 24 additions & 14 deletions src/app/visit/visit.cpp
Original file line number Diff line number Diff line change
@@ -1,49 +1,59 @@
#include "visit.hpp"
#include "../doctor/doctor.hpp"

std::unordered_set<Visit*> Visit::visitExtent;
std::unordered_set<Visit *> Visit::visitExtent;


Visit::Visit(){
Visit::Visit()
{
visitExtent.insert(this);
}

Visit::~Visit() {
Visit::~Visit()
{
removeFromExtent(this);
}

std::shared_ptr<Visit> Visit::createVisit(std::shared_ptr<Doctor> doc) {
std::shared_ptr<Visit> Visit::createVisit(std::shared_ptr<Doctor> doc)
{
auto visit = std::shared_ptr<Visit>(new Visit());
doc->addAssociation(visit);
return visit;
}

std::unordered_set<Visit*> Visit::getExtent(){
std::unordered_set<Visit *> Visit::getExtent()
{
return visitExtent;
}

void Visit::removeFromExtent(Visit* visit) {
void Visit::removeFromExtent(Visit *visit)
{
auto it = visitExtent.find(visit);
if (it != visitExtent.end()) {
if (it != visitExtent.end())
{
visitExtent.erase(it);
}
}

void Visit::setAssociation(std::shared_ptr<Doctor> doc){
if(!docAssociation_){
docAssociation_={doc};
void Visit::setAssociation(std::shared_ptr<Doctor> doc)
{
if (!docAssociation_)
{
docAssociation_ = {doc};
docAssociation_->addAssociation(shared_from_this());
}
}

std::shared_ptr<Doctor> Visit::getDocAssociation(){
std::shared_ptr<Doctor> Visit::getDocAssociation()
{
return docAssociation_;
}

void Visit::setVisitInfo(std::string info){
void Visit::setVisitInfo(std::string info)
{
visitInfo_ = info;
}

std::string Visit::getVisitInfo(){
std::string Visit::getVisitInfo()
{
return visitInfo_;
}
30 changes: 16 additions & 14 deletions src/app/visit/visit.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,22 @@

class Doctor;

class Visit : public std::enable_shared_from_this<Visit>{
Visit();
static std::unordered_set<Visit*> visitExtent;
std::shared_ptr<Doctor> docAssociation_;
class Visit : public std::enable_shared_from_this<Visit>
{
Visit();
static std::unordered_set<Visit *> visitExtent;
std::shared_ptr<Doctor> docAssociation_;

std::string visitInfo_;
public:
~Visit();
static std::shared_ptr<Visit> createVisit(std::shared_ptr<Doctor> doc);
static std::unordered_set<Visit*> getExtent();
static void removeFromExtent(Visit* visit);
std::string visitInfo_;

void setAssociation(std::shared_ptr<Doctor> doc);
std::shared_ptr<Doctor> getDocAssociation();
void setVisitInfo(std::string info);
std::string getVisitInfo();
public:
~Visit();
static std::shared_ptr<Visit> createVisit(std::shared_ptr<Doctor> doc);
static std::unordered_set<Visit *> getExtent();
static void removeFromExtent(Visit *visit);

void setAssociation(std::shared_ptr<Doctor> doc);
std::shared_ptr<Doctor> getDocAssociation();
void setVisitInfo(std::string info);
std::string getVisitInfo();
};
42 changes: 26 additions & 16 deletions src/tests/unit-tests.cpp
Original file line number Diff line number Diff line change
@@ -1,54 +1,64 @@
#include "gtest/gtest.h"
#include "../app/doctor/doctor.hpp"
#include "../app/visit/visit.hpp"
#include "gtest/gtest.h"

struct AssociationTest : ::testing::Test{
struct AssociationTest : ::testing::Test
{
std::shared_ptr<Doctor> doc1{std::make_shared<Doctor>("Janusz", "Tracz", "1234")};
std::shared_ptr<Doctor> doc2{std::make_shared<Doctor>("Łukasz", "Ziobroń", "123456")};
std::shared_ptr<Doctor> doc2{std::make_shared<Doctor>("Lukasz", "Ziobron", "123456")};

std::shared_ptr<Visit> visit1;
std::shared_ptr<Visit> visit2;
std::shared_ptr<Visit> visit3;

AssociationTest(){

AssociationTest()
{
visit1 = Visit::createVisit(doc1);
visit2 = Visit::createVisit(doc2);
visit3 = Visit::createVisit(doc2);

visit2->setVisitInfo("Tworzę klub ninja!");
visit3->setVisitInfo("I w klubie sami fajni ludzie");
visit2->setVisitInfo("Tworze klub ninja!");
visit3->setVisitInfo("I w klubie sa sami fajni ludzie");
}
};

TEST_F(AssociationTest, ExtentDemo){
TEST_F(AssociationTest, ExtentDemo)
{
auto content = Visit::getExtent().size();
auto expected = 3;
EXPECT_EQ(content, expected);
}

TEST_F(AssociationTest, AssociationDemo) {
TEST_F(AssociationTest, AssociationDemo)
{
auto content = visit1->getDocAssociation()->getLastName();
auto expected = "Tracz";
EXPECT_EQ(content, expected);
}

TEST_F(AssociationTest, AssociationDemo2){
TEST_F(AssociationTest, AssociationDemo2)
{
auto content = doc2->getVisitAssociations().begin()->get()->getVisitInfo();
auto expected = "Tworzę klub ninja!";
auto expected = "Tworze klub ninja!";
EXPECT_EQ(content, expected);
}

TEST_F(AssociationTest, AssociationDemo3){
TEST_F(AssociationTest, AssociationDemo3)
{
std::string content;
auto associations = doc2->getVisitAssociations();
if (auto it = associations.begin(); it != associations.end()) {
if (auto it = associations.begin(); it != associations.end())
{
std::advance(it, 1);
if(it != doc2->getVisitAssociations().end()){
if (it != doc2->getVisitAssociations().end())
{
content = it->get()->getVisitInfo();
}else{
}
else
{
content = "null";
}
}
auto expected = "I w klubie sami fajni ludzie";
auto expected = "I w klubie sa sami fajni ludzie";
EXPECT_EQ(content, expected);
}

0 comments on commit cfeb87e

Please sign in to comment.