Skip to content

Commit

Permalink
Merge pull request #1083 from NikBrg/InstallCopierCorrectly
Browse files Browse the repository at this point in the history
Install copier correctly
  • Loading branch information
basvodde committed Feb 2, 2017
2 parents 2ab81a4 + 624fd0d commit 16ee282
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 1 deletion.
4 changes: 3 additions & 1 deletion src/CppUTestExt/MockNamedValue.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -436,6 +436,8 @@ struct MockNamedValueComparatorsAndCopiersRepositoryNode
: name_(name), comparator_(comparator), copier_(NULL), next_(next) {}
MockNamedValueComparatorsAndCopiersRepositoryNode(const SimpleString& name, MockNamedValueCopier* copier, MockNamedValueComparatorsAndCopiersRepositoryNode* next)
: name_(name), comparator_(NULL), copier_(copier), next_(next) {}
MockNamedValueComparatorsAndCopiersRepositoryNode(const SimpleString& name, MockNamedValueComparator* comparator, MockNamedValueCopier* copier, MockNamedValueComparatorsAndCopiersRepositoryNode* next)
: name_(name), comparator_(comparator), copier_(copier), next_(next) {}
SimpleString name_;
MockNamedValueComparator* comparator_;
MockNamedValueCopier* copier_;
Expand Down Expand Up @@ -488,5 +490,5 @@ MockNamedValueCopier* MockNamedValueComparatorsAndCopiersRepository::getCopierFo
void MockNamedValueComparatorsAndCopiersRepository::installComparatorsAndCopiers(const MockNamedValueComparatorsAndCopiersRepository& repository)
{
for (MockNamedValueComparatorsAndCopiersRepositoryNode* p = repository.head_; p; p = p->next_)
head_ = new MockNamedValueComparatorsAndCopiersRepositoryNode(p->name_, p->comparator_, head_);
head_ = new MockNamedValueComparatorsAndCopiersRepositoryNode(p->name_, p->comparator_, p->copier_, head_);
}
19 changes: 19 additions & 0 deletions tests/CppUTestExt/MockNamedValueTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -74,3 +74,22 @@ TEST(ComparatorsAndCopiersRepository, ComparatorAndCopierByTheSameNameShouldBoth
repository.clear();
}

TEST(ComparatorsAndCopiersRepository, InstallComparatorsAndCopiersFromRepository)
{
MyComparator comparator;
MyCopier copier;
MockNamedValueComparatorsAndCopiersRepository source;
MockNamedValueComparatorsAndCopiersRepository target;

source.installCopier("MyType", copier);
source.installComparator("MyType", comparator);

target.installComparatorsAndCopiers(source);

POINTERS_EQUAL(&comparator, target.getComparatorForType("MyType"));
POINTERS_EQUAL(&copier, target.getCopierForType("MyType"));

source.clear();
target.clear();
}

0 comments on commit 16ee282

Please sign in to comment.