mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2025-12-11 20:02:09 +00:00
Fix C++ code smells
* Move "using namespace std;" from header to module file (to no longer pollute the global namespace). * Fix inconsistency of having namespace prefix in test code. * Add include guard to GildedRose.h. * Avoid std::endl. * Have consistent white-space.
This commit is contained in:
parent
6c59257f27
commit
73a51ef14f
@ -1,5 +1,7 @@
|
|||||||
#include "GildedRose.h"
|
#include "GildedRose.h"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
GildedRose::GildedRose(vector<Item> & items) : items(items)
|
GildedRose::GildedRose(vector<Item> & items) : items(items)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|||||||
@ -1,24 +1,23 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
class Item
|
class Item
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
string name;
|
std::string name;
|
||||||
int sellIn;
|
int sellIn;
|
||||||
int quality;
|
int quality;
|
||||||
Item(string name, int sellIn, int quality) : name(name), sellIn(sellIn), quality(quality)
|
Item(std::string name, int sellIn, int quality) : name(name), sellIn(sellIn), quality(quality)
|
||||||
{}
|
{}
|
||||||
};
|
};
|
||||||
|
|
||||||
class GildedRose
|
class GildedRose
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
vector<Item> & items;
|
std::vector<Item> & items;
|
||||||
GildedRose(vector<Item> & items);
|
GildedRose(std::vector<Item> & items);
|
||||||
|
|
||||||
void updateQuality();
|
void updateQuality();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -12,12 +12,12 @@ std::ostream& operator<<(std::ostream& os, const Item& obj)
|
|||||||
|
|
||||||
TEST_CASE("GildedRoseApprovalTests", "VerifyCombinations")
|
TEST_CASE("GildedRoseApprovalTests", "VerifyCombinations")
|
||||||
{
|
{
|
||||||
std::vector<string> names { "Foo" };
|
std::vector<std::string> names { "Foo" };
|
||||||
std::vector<int> sellIns { 1 };
|
std::vector<int> sellIns { 1 };
|
||||||
std::vector<int> qualities { 1 };
|
std::vector<int> qualities { 1 };
|
||||||
|
|
||||||
auto f = [](string name, int sellIn, int quality) {
|
auto f = [](std::string name, int sellIn, int quality) {
|
||||||
vector<Item> items = {Item(name, sellIn, quality)};
|
std::vector<Item> items = {Item(name, sellIn, quality)};
|
||||||
GildedRose app(items);
|
GildedRose app(items);
|
||||||
app.updateQuality();
|
app.updateQuality();
|
||||||
return items[0];
|
return items[0];
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
TEST_CASE("GildedRoseUnitTest", "Foo")
|
TEST_CASE("GildedRoseUnitTest", "Foo")
|
||||||
{
|
{
|
||||||
vector<Item> items;
|
std::vector<Item> items;
|
||||||
items.push_back(Item("Foo", 0, 0));
|
items.push_back(Item("Foo", 0, 0));
|
||||||
GildedRose app(items);
|
GildedRose app(items);
|
||||||
app.updateQuality();
|
app.updateQuality();
|
||||||
|
|||||||
@ -12,12 +12,12 @@ std::ostream& operator<<(std::ostream& os, const Item& obj)
|
|||||||
|
|
||||||
TEST(GildedRoseApprovalTests, VerifyCombinations) {
|
TEST(GildedRoseApprovalTests, VerifyCombinations) {
|
||||||
|
|
||||||
std::vector<string> names { "Foo" };
|
std::vector<std::string> names { "Foo" };
|
||||||
std::vector<int> sellIns { 1 };
|
std::vector<int> sellIns { 1 };
|
||||||
std::vector<int> qualities { 1 };
|
std::vector<int> qualities { 1 };
|
||||||
|
|
||||||
auto f = [](string name, int sellIn, int quality) {
|
auto f = [](std::string name, int sellIn, int quality) {
|
||||||
vector<Item> items = {Item(name, sellIn, quality)};
|
std::vector<Item> items = {Item(name, sellIn, quality)};
|
||||||
GildedRose app(items);
|
GildedRose app(items);
|
||||||
app.updateQuality();
|
app.updateQuality();
|
||||||
return items[0];
|
return items[0];
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
#include "GildedRose.h"
|
#include "GildedRose.h"
|
||||||
|
|
||||||
TEST(GildedRoseTest, Foo) {
|
TEST(GildedRoseTest, Foo) {
|
||||||
vector<Item> items;
|
std::vector<Item> items;
|
||||||
items.push_back(Item("Foo", 0, 0));
|
items.push_back(Item("Foo", 0, 0));
|
||||||
GildedRose app(items);
|
GildedRose app(items);
|
||||||
app.updateQuality();
|
app.updateQuality();
|
||||||
|
|||||||
@ -3,12 +3,12 @@
|
|||||||
|
|
||||||
void print_item(Item& item)
|
void print_item(Item& item)
|
||||||
{
|
{
|
||||||
std::cout << item.name << ", " << item.sellIn << ", " << item.quality << std::endl;
|
std::cout << item.name << ", " << item.sellIn << ", " << item.quality << '\n';
|
||||||
}
|
}
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
vector<Item> items;
|
std::vector<Item> items;
|
||||||
|
|
||||||
items.push_back({"+5 Dexterity Vest", 10, 20});
|
items.push_back({"+5 Dexterity Vest", 10, 20});
|
||||||
items.push_back({"Aged Brie", 2, 0});
|
items.push_back({"Aged Brie", 2, 0});
|
||||||
@ -22,22 +22,20 @@ int main()
|
|||||||
// this Conjured item doesn't yet work properly
|
// this Conjured item doesn't yet work properly
|
||||||
items.push_back({"Conjured Mana Cake", 3, 6});
|
items.push_back({"Conjured Mana Cake", 3, 6});
|
||||||
|
|
||||||
std::cout << "OMGHAI!" << std::endl;
|
std::cout << "OMGHAI!" << '\n';
|
||||||
|
|
||||||
GildedRose app(items);
|
GildedRose app(items);
|
||||||
|
|
||||||
for (int day = 0; day <= 30; day++)
|
for (int day = 0; day <= 30; day++)
|
||||||
{
|
{
|
||||||
std::cout << "-------- day " << day << " --------" << std::endl;
|
std::cout << "-------- day " << day << " --------" << '\n';
|
||||||
std::cout << "name, sellIn, quality" << std::endl;
|
std::cout << "name, sellIn, quality" << '\n';
|
||||||
for (auto& item : items)
|
for (auto& item : items)
|
||||||
{
|
{
|
||||||
print_item(item);
|
print_item(item);
|
||||||
}
|
}
|
||||||
std::cout << std::endl;
|
std::cout << '\n';
|
||||||
app.updateQuality();
|
app.updateQuality();
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user