C++ version with a vector to hold the items.

This commit is contained in:
Emily Bache 2012-01-15 20:30:31 +01:00
parent 5b6c47ccc8
commit 5010475a2f

View File

@ -1,30 +1,29 @@
#include <gtest/gtest.h> #include <gtest/gtest.h>
void example() #include <string>
using namespace std;
class Item
{ {
std::list<Item> items = new std::list<Item>(); public:
items.push_back(new Item("+5 Dexterity Vest", 10, 20)); string name;
items.push_back(new Item("Aged Brie", 2, 0)); int sellIn;
items.push_back(new Item("Elixir of the Mongoose", 5, 7)); int quality;
items.push_back(new Item("Sulfuras, Hand of Ragnaros", 0, 80)); Item(string name, int sellIn, int quality) : name(name), sellIn(sellIn), quality(quality)
items.push_back(new Item("Backstage passes to a TAFKAL80ETC concert", 15, 20)); {}
items.push_back(new Item("Conjured Mana Cake", 3, 6)); };
GildedRose app = new GildedRose(items);
app.updateQuality();
}
class GildedRose class GildedRose
{ {
public: public:
std::list<Item> items; vector<Item> items;
GildedRose(std::list items) GildedRose(vector<Item> items) : items (items)
{ {}
this.items = items;
}
void updateQuality() void updateQuality()
{ {
for (int i = 0; i < items.length; i++) for (int i = 0; i < items.size(); i++)
{ {
if (items[i].name != "Aged Brie" && items[i].name != "Backstage passes to a TAFKAL80ETC concert") if (items[i].name != "Aged Brie" && items[i].name != "Backstage passes to a TAFKAL80ETC concert")
{ {
@ -99,18 +98,25 @@ public:
} }
}; };
class Item
void example()
{ {
public: vector<Item> items;
std::string name; items.push_back(Item("+5 Dexterity Vest", 10, 20));
int sellIn; items.push_back(Item("Aged Brie", 2, 0));
int quality; items.push_back(Item("Elixir of the Mongoose", 5, 7));
}; items.push_back(Item("Sulfuras, Hand of Ragnaros", 0, 80));
items.push_back(Item("Backstage passes to a TAFKAL80ETC concert", 15, 20));
items.push_back(Item("Conjured Mana Cake", 3, 6));
GildedRose app(items);
app.updateQuality();
}
TEST(GildedRoseTest, Foo) { TEST(GildedRoseTest, Foo) {
std::list<Item> items = new std::list<Item>(); vector<Item> items;
items.push_back(new Item("Foo", 0, 0)); items.push_back(Item("Foo", 0, 0));
GildedRose app = new GildedRose(items); GildedRose app(items);
app.updateQuality(); app.updateQuality();
EXPECT_EQ("fixme", app.items[0].name); EXPECT_EQ("fixme", app.items[0].name);
} }