diff --git a/.gitignore b/.gitignore
index 4d9e991..26b926c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,6 +4,7 @@
local.appsettings.config
# User-specific files
+.idea/
*.suo
*.user
*.userosscache
diff --git a/Order.Management.Test/Approvals/ProgramTest.TestMainOutputs.approved.txt b/Order.Management.Test/Approvals/ProgramTest.TestMainOutputs.approved.txt
new file mode 100644
index 0000000..beac65e
--- /dev/null
+++ b/Order.Management.Test/Approvals/ProgramTest.TestMainOutputs.approved.txt
@@ -0,0 +1,47 @@
+Please input your Name: Please input your Address: Please input your Due Date:
+Please input the number of Red Square:
+Please input the number of Blue Square:
+Please input the number of Yellow Square:
+Please input the number of Red Triangle:
+Please input the number of Blue Triangle:
+Please input the number of Yellow Triangle:
+Please input the number of Red Circle:
+Please input the number of Blue Circle:
+Please input the number of Yellow Circle:
+Your invoice report has been generated:
+
+Name: David Wei Address: 26A Croydon Street, Sydenham, Christchurch 8024 Due Date: 29-09-2021 Order #: 0
+-------------------------------------------------------------------------
+| | Red | Blue | Yellow |
+-------------------------------------------------------------------------
+| Square | 1 | 2 | 3 |
+| Triangle | 4 | 7 | 2 |
+| Circle | 5 | 8 | 1 |
+-------------------------------------------------------------------------
+
+Squares 6 @ $1 ppi = $6
+Triangles 13 @ $2 ppi = $26
+Circles 14 @ $3 ppi = $42
+Red Color Surcharge 10 @ $1 ppi = $10
+
+Your cutting list has been generated:
+
+Name: David Wei Address: 26A Croydon Street, Sydenham, Christchurch 8024 Due Date: 29-09-2021 Order #: 0
+--------------------
+| | Qty |
+--------------------
+| Square | 6 |
+|Triangle | 13 |
+| Circle | 14 |
+--------------------
+
+Your painting report has been generated:
+
+Name: David Wei Address: 26A Croydon Street, Sydenham, Christchurch 8024 Due Date: 29-09-2021 Order #: 0
+-------------------------------------------------------------------------
+| | Red | Blue | Yellow |
+-------------------------------------------------------------------------
+| Square | 1 | 2 | 3 |
+| Triangle | 4 | 7 | 2 |
+| Circle | 5 | 8 | 1 |
+-------------------------------------------------------------------------
diff --git a/Order.Management.Test/Approvals/input.txt b/Order.Management.Test/Approvals/input.txt
new file mode 100644
index 0000000..15b3027
--- /dev/null
+++ b/Order.Management.Test/Approvals/input.txt
@@ -0,0 +1,12 @@
+David Wei
+26A Croydon Street, Sydenham, Christchurch 8024
+29-09-2021
+1
+2
+3
+4
+7
+2
+5
+8
+1
diff --git a/Order.Management.Test/Order.Management.Test.csproj b/Order.Management.Test/Order.Management.Test.csproj
new file mode 100644
index 0000000..9ab0d69
--- /dev/null
+++ b/Order.Management.Test/Order.Management.Test.csproj
@@ -0,0 +1,31 @@
+
+
+
+ netcoreapp3.1
+
+ false
+
+
+
+
+
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+
+
+ Always
+
+
+
+
+
+
+
diff --git a/Order.Management.Test/OrderTest.cs b/Order.Management.Test/OrderTest.cs
new file mode 100644
index 0000000..44b3e45
--- /dev/null
+++ b/Order.Management.Test/OrderTest.cs
@@ -0,0 +1,143 @@
+using System.Collections.Generic;
+using System.Management;
+using System.Runtime.InteropServices;
+using Order.Management.Enums;
+using Xunit;
+using Order.Management.Models;
+
+namespace Order.Management.Test
+{
+ public class OrderTest
+ {
+ public static IEnumerable