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..23a006e 100644
--- a/DesignPatternsSolution/Execise.Tests/UnitTests.cs
+++ b/DesignPatternsSolution/Execise.Tests/UnitTests.cs
@@ -1,4 +1,5 @@
-using Exercise;
+using System;
+using Exercise;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Execise.Tests
@@ -12,18 +13,27 @@ 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 a = Library.getLibInstance();
+ var b = Library.getLibInstance();
+ var bSameObject = ReferenceEquals(a, b);
+ Assert.AreEqual(true, bSameObject, "Objects returned are different");
}
//test that an book was registered successfully by checking the returned Id value is not -1
[TestMethod]
public void BookShouldRegister()
{
+ var registeredId = RegistrationRepository.Register(new Book("bill", "bill's book", 1995, 5));
+ Assert.AreNotEqual(-1, registeredId);
+
}
//test that an customer was registered successfully by checking the returned Id value is not -1
[TestMethod]
public void CustomerShouldRegister()
{
+ var registeredId = RegistrationRepository.Register(new Customer("bill", "bill's addr"));
+ Assert.AreNotEqual(-1, registeredId);
}
//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..be87921 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,34 @@ 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
+ };
+ }
+ }
+
+ public class Video : Item, IRegistarable
+ {
+ public Video(string director, string title, int year, int amount)
+ : base(amount, year)
+ {
+ NameOrTitle = title;
+ Director = director;
+ }
+ public string Director { 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..cc175f8 100644
--- a/DesignPatternsSolution/Exercise/Library.cs
+++ b/DesignPatternsSolution/Exercise/Library.cs
@@ -1,18 +1,26 @@
-namespace Exercise
+using System.Runtime.Remoting.Messaging;
+
+namespace Exercise
{
public class Library
{
//implement Singleton to make sure only one library will exist
+ private static Library libInstance = new Library();
-
+ private Library()
+ {
+ }
- //Implement Register method by utilizing RegistrationRepository (complete missing parts)
- public int Register()
+ public static Library getLibInstance()
{
- // return RegistrationRepository.Register();
+ return libInstance;
+ }
+
- //dummy, just to compile
- return 0;
+ //Implement Register method by utilizing RegistrationRepository (complete missing parts)
+ public int Register(IRegistarable libObject)
+ {
+ return RegistrationRepository.Register(libObject);
}
}
}
diff --git a/DesignPatternsSolution/Exercise/Person.cs b/DesignPatternsSolution/Exercise/Person.cs
index 2c2ed21..e1cc4cb 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,14 @@ public void SetId(int id)
{
ObjectId = id;
}
+
+ public RegisteredObject GetRegistrationInfo()
+ {
+ return new RegisteredObject()
+ {
+ AvailableAmount = 1,
+ Info = NameOrTitle
+ };
+ }
}
}