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; } } + + + }