クラスがありListContainer
ます。クラスはリストのコンテナであり、3 つの操作を許可します。
- 追加
- 削除する
- getNotValid (無効な要素のリストを返します)。
リストはクラス内でプライベートであるため、実際に要素を追加することを確認できません。追加機能をテストするにはどうすればよいと思いますか?
私の意見では、getNotValid で確認する必要があります。
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
Container::Container() {
}
void Container::add(Element element) {
pthread_mutex_lock(&mutex);
list.push_back(element);
pthread_mutex_unlock(&mutex);
}
void Container::remove(unsigned int elementId) {
pthread_mutex_lock(&mutex);
list<Element>::iterator it;
for (it = list.begin(); it != list.end(); ++it) {
if (element->id == elementId) { //TODO is it the real check
list.erase(it);
}
}
pthread_mutex_unlock(&mutex);
}
list<Element> Container::getNotValid() {
list<Element> result;
pthread_mutex_lock(&mutex);
list<Element>::iterator it;
for (it = list.begin(); it != list.end(); ++it) {
if (element->isNotValid()) {
result.push_back(*it);
}
}
pthread_mutex_unlock(&mutex);
return result;
}