From cf5d9311c7847cdab810e2f31c968c9d6931857f Mon Sep 17 00:00:00 2001 From: Jacob Chen Jensen Date: Mon, 15 Jan 2024 13:41:16 +0100 Subject: [PATCH] finished --- Domain Model.PNG | Bin 0 -> 23646 bytes tdd-domain-modelling.CSharp.Main/Basket.cs | 64 ++++++++++++++++++ .../CohortManager.cs | 9 ++- .../BasketTests.cs | 58 ++++++++++++++++ .../CohortManagerTests.cs | 26 +++++++ 5 files changed, 156 insertions(+), 1 deletion(-) create mode 100644 Domain Model.PNG create mode 100644 tdd-domain-modelling.CSharp.Main/Basket.cs create mode 100644 tdd-domain-modelling.CSharp.Test/BasketTests.cs diff --git a/Domain Model.PNG b/Domain Model.PNG new file mode 100644 index 0000000000000000000000000000000000000000..c16fc6e2af1184fe9b52b15104470aed6c06440c GIT binary patch literal 23646 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 IdhpzT01Enf2><{9 literal 0 HcmV?d00001 diff --git a/tdd-domain-modelling.CSharp.Main/Basket.cs b/tdd-domain-modelling.CSharp.Main/Basket.cs new file mode 100644 index 0000000..11a2f81 --- /dev/null +++ b/tdd-domain-modelling.CSharp.Main/Basket.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace tdd_domain_modelling.CSharp.Main +{ + + public struct Item + { + public string itemName { get; set; } + public int itemPrice { get; set; } + + public Item(string name, int price) + { + itemName = name; + itemPrice = price; + } + } + public class Basket + { + + public List Items { get; set; } + + public Basket() + { + Items = new List(); + } + + + public bool addItem(string item, int price) + { + bool result; + Item temp = new Item(item,price); + + if (Items.Contains(temp) == true) + { + result = false; + } + else + { + Items.Add(temp); + result = true; + } + + return result; + } + public int totalCost() + { + int total = 0; + + foreach (Item item in Items) + { + total += item.itemPrice; + } + + + return total; + } + + + } +} diff --git a/tdd-domain-modelling.CSharp.Main/CohortManager.cs b/tdd-domain-modelling.CSharp.Main/CohortManager.cs index 6a5669c..03db904 100644 --- a/tdd-domain-modelling.CSharp.Main/CohortManager.cs +++ b/tdd-domain-modelling.CSharp.Main/CohortManager.cs @@ -7,6 +7,13 @@ namespace tdd_domain_modelling.CSharp.Main { public class CohortManager - { + { + public bool search(List list, string name) + { + + + return list.Contains(name); + } + } } diff --git a/tdd-domain-modelling.CSharp.Test/BasketTests.cs b/tdd-domain-modelling.CSharp.Test/BasketTests.cs new file mode 100644 index 0000000..f6b8c06 --- /dev/null +++ b/tdd-domain-modelling.CSharp.Test/BasketTests.cs @@ -0,0 +1,58 @@ +using NUnit.Framework; +using tdd_domain_modelling.CSharp.Main; + +namespace tdd_domain_modelling.CSharp.Test +{ + [TestFixture] + public class BasketTests + { + [Test] + public void FirstTest() + { + Basket basket = new Basket(); + + bool addTest = basket.addItem("Milk", 3); + + Assert.IsTrue(addTest); + } + [Test] + public void SecondTest() + { + Basket basket = new Basket(); + + basket.addItem("Milk", 3); + bool addTest = basket.addItem("Milk", 3); + + Assert.IsFalse(addTest); + + } + [Test] + public void ThirdTest() + { + Basket basket = new Basket(); + + basket.addItem("Milk", 3); + + Assert.IsTrue(basket.totalCost() == 3); + } + [Test] + public void FourthTest() + { + Basket basket = new Basket(); + basket.addItem("Milk", 3); + basket.addItem("Flour", 2); + basket.addItem("Egg", 5); + + Assert.IsTrue(basket.totalCost() == 10); + } + [Test] + public void FifthTest() + { + Basket basket = new Basket(); + basket.addItem("Milk", 3); + basket.addItem("Milk", 3); + Assert.IsTrue(basket.totalCost() == 3); + } + + } +} \ No newline at end of file diff --git a/tdd-domain-modelling.CSharp.Test/CohortManagerTests.cs b/tdd-domain-modelling.CSharp.Test/CohortManagerTests.cs index 56f3873..facc657 100644 --- a/tdd-domain-modelling.CSharp.Test/CohortManagerTests.cs +++ b/tdd-domain-modelling.CSharp.Test/CohortManagerTests.cs @@ -7,9 +7,35 @@ namespace tdd_domain_modelling.CSharp.Test public class CohortManagerTest { [Test] + public void FirstTest() { CohortManager core = new CohortManager(); + + List list = new List() + { + "Jacob", + "Pia", + "Nikolaj" + }; + + bool testResult = core.search(list, "Jacob"); + Assert.IsTrue(testResult); + } + [Test] + public void SecondTest() + { + CohortManager core = new CohortManager(); + + List list = new List() + { + "Jacob", + "Pia", + "Nikolaj" + }; + + bool testResult = core.search(list, "Klaus"); + Assert.IsFalse(testResult); } } } \ No newline at end of file