diff --git a/DesignPatternsSolution/Execise.Tests/Execise.Tests.csproj b/DesignPatternsSolution/Execise.Tests/Execise.Tests.csproj
index 71e68ac..4f78f0d 100644
--- a/DesignPatternsSolution/Execise.Tests/Execise.Tests.csproj
+++ b/DesignPatternsSolution/Execise.Tests/Execise.Tests.csproj
@@ -8,7 +8,7 @@
Properties
Execise.Tests
Execise.Tests
- v4.5.2
+ v4.5
512
{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
10.0
@@ -16,6 +16,7 @@
$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages
False
UnitTest
+
true
diff --git a/DesignPatternsSolution/Execise.Tests/UnitTests.cs b/DesignPatternsSolution/Execise.Tests/UnitTests.cs
index 0a3b80e..da3be12 100644
--- a/DesignPatternsSolution/Execise.Tests/UnitTests.cs
+++ b/DesignPatternsSolution/Execise.Tests/UnitTests.cs
@@ -12,18 +12,29 @@ public void LibraryShouldBeSingleton()
{
//check that when you create a Library instance second time,
//you get exactly the same instance as for a very first time
+ var lib1 = Library.getInstance();
+ var lib2 = Library.getInstance();
+
+ Assert.AreEqual(lib1, lib2);
+
}
//test that an book was registered successfully by checking the returned Id value is not -1
[TestMethod]
public void BookShouldRegister()
{
+ var lib = Library.getInstance();
+ var book = new Book("one","wolf",1999,1);
+ Assert.AreNotEqual(-1,lib.Register(book));
}
//test that an customer was registered successfully by checking the returned Id value is not -1
[TestMethod]
public void CustomerShouldRegister()
{
+ var lib = Library.getInstance();
+ var cust = new Customer("Bad Man", "123 Street");
+ Assert.AreNotEqual(-1, lib.Register(cust));
}
//test that a book can be borrowed
diff --git a/DesignPatternsSolution/Exercise/Exercise.csproj b/DesignPatternsSolution/Exercise/Exercise.csproj
index d2cc582..87a49ae 100644
--- a/DesignPatternsSolution/Exercise/Exercise.csproj
+++ b/DesignPatternsSolution/Exercise/Exercise.csproj
@@ -9,9 +9,10 @@
Properties
Exercise
Exercise
- v4.5.2
+ v4.5
512
true
+
AnyCPU
diff --git a/DesignPatternsSolution/Exercise/Item.cs b/DesignPatternsSolution/Exercise/Item.cs
index 92c21e1..8ee898d 100644
--- a/DesignPatternsSolution/Exercise/Item.cs
+++ b/DesignPatternsSolution/Exercise/Item.cs
@@ -10,7 +10,7 @@ public Item(int amount, int year)
}
}
- public class Book : Item
+ public class Book : Item, IRegistarable
{
public Book(string author, string title, int year, int amount) : base(amount, year)
{
@@ -18,5 +18,10 @@ public Book(string author, string title, int year, int amount) : base(amount, ye
Author = author;
}
public string Author { get; set; }
+
+ public RegisteredObject GetRegistrationInfo()
+ {
+ return new RegisteredObject() { AvailableAmount = AvailableAmount, Info = NameOrTitle };
+ }
}
}
diff --git a/DesignPatternsSolution/Exercise/Library.cs b/DesignPatternsSolution/Exercise/Library.cs
index 1d9dde4..1deb33b 100644
--- a/DesignPatternsSolution/Exercise/Library.cs
+++ b/DesignPatternsSolution/Exercise/Library.cs
@@ -3,16 +3,22 @@
public class Library
{
//implement Singleton to make sure only one library will exist
+ static Library instance = new Library();
+ private Library() { }
+
+ public static Library getInstance() { return instance; }
+ // private IRegistarable _registerObject;
- //Implement Register method by utilizing RegistrationRepository (complete missing parts)
- public int Register()
+ //Implement Register method by utilizing RegistrationRepository ()
+ public int Register(IRegistarable _registerObject)
{
- // return RegistrationRepository.Register();
+
+ return RegistrationRepository.Register(_registerObject);
//dummy, just to compile
- return 0;
+ //return 0;
}
}
}
diff --git a/DesignPatternsSolution/Exercise/Person.cs b/DesignPatternsSolution/Exercise/Person.cs
index 2c2ed21..36d9c23 100644
--- a/DesignPatternsSolution/Exercise/Person.cs
+++ b/DesignPatternsSolution/Exercise/Person.cs
@@ -2,7 +2,7 @@
namespace Exercise
{
- public class Customer : LibObject
+ public class Customer : LibObject, IRegistarable
{
public string Address { get; set; }
public DateTime RegisteredAt { get; set; }
@@ -19,5 +19,10 @@ public void SetId(int id)
{
ObjectId = id;
}
+
+ public RegisteredObject GetRegistrationInfo()
+ {
+ return new RegisteredObject() { AvailableAmount = 1, Info = NameOrTitle };
+ }
}
}
diff --git a/DesignPatternsSolution/Exercise/Registration.cs b/DesignPatternsSolution/Exercise/Registration.cs
index f8c4eb0..fe86d80 100644
--- a/DesignPatternsSolution/Exercise/Registration.cs
+++ b/DesignPatternsSolution/Exercise/Registration.cs
@@ -43,6 +43,8 @@ public static int DeleteAllRegisteredItems()
return size;
}
+
+
}
public class RegisteredObject
@@ -56,4 +58,7 @@ public override string ToString()
return Info + " " + "Available: " + AvailableAmount;
}
}
+
+
+
}