Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion domain-model.md
Original file line number Diff line number Diff line change
@@ -1 +1,12 @@
#Domain Models In Here
#Domain Models In Here

First Domain Model
| Classes | Methods | Scenario | Outputs |
|-----------------|----------------------------------------------|----------------------|-------------------|
| `Cashier` | `scanItems(Dictionary<string, int> basket)` | if List is populated | Sum of item.Value |

Second Domain Model
| Classes | Methods | Scenario | Outputs |
|-----------------|-------------------------------------------------|------------------------|---------------------------------------------|
| `Cashier` | `printReciept(Dictionary<string, int> basket)` | if List is populated | Returns tupleList with name, cost, quantity |
| `Cashier` | `totalCost(IList<Tuple<T1, T2, T3>> list)` | if List is populated | Sum of item.Value |
39 changes: 39 additions & 0 deletions tdd-domain-modelling.CSharp.Main/Basket.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace tdd_domain_modelling.CSharp.Main
{
public class Basket
{
public Dictionary<string, int> wares = new Dictionary<string, int> {
{ "apple", 5 },
{ "milk", 10 },
{ "egg", 2 },
{ "steak", 20 },
};
private Dictionary<string, int> basket = new Dictionary<string, int>();

public bool add(string name)
{
if (wares.ContainsKey(name) && !basket.ContainsKey(name)) {
basket.Add(name, wares.GetValueOrDefault(name));
return true;
}
return false;

}

public int total()
{
int sum = 0;
foreach (var item in basket)
{
sum += item.Value;
}
return sum;
}
}
}
50 changes: 50 additions & 0 deletions tdd-domain-modelling.CSharp.Test/BasketTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
using NUnit.Framework;
using tdd_domain_modelling.CSharp.Main;

namespace tdd_domain_modelling.CSharp.Test
{
[TestFixture]
public class BasketTest
{
[Test]
public void AddOneItemTest()
{
Basket basket = new Basket();
bool added = basket.add("apple");

Assert.IsTrue(added);
}

[Test]
public void AddTwoItemTest()
{
Basket basket = new Basket();
bool added = basket.add("apple");
added = basket.add("milk");

Assert.IsTrue(added);
}

[Test]
public void AddDuplicateItemTest()
{
Basket basket = new Basket();
bool added = basket.add("apple");
added = basket.add("apple");

Assert.IsTrue(!added);
}

[Test]
public void CheckTotalCostTest()
{
Basket basket = new Basket();
bool added = basket.add("apple");
added = basket.add("milk");
added = basket.add("steak");

Assert.IsTrue(added);
Assert.That(basket.total() == 35);
}
}
}