From c80fb0fc7d5fb5826453c2e53950a1f44c0390e8 Mon Sep 17 00:00:00 2001 From: VarianErik Date: Thu, 26 Jan 2017 14:04:27 -0600 Subject: [PATCH] Task 1 and 2 --- .../Execise.Tests/Execise.Tests.csproj | 3 +- .../Execise.Tests/UnitTests.cs | 12 ++++++- .../Exercise/Exercise.csproj | 3 +- DesignPatternsSolution/Exercise/Item.cs | 31 ++++++++++++++++++- DesignPatternsSolution/Exercise/Library.cs | 22 ++++++++----- DesignPatternsSolution/Exercise/Person.cs | 11 ++++++- 6 files changed, 70 insertions(+), 12 deletions(-) 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 + }; + } } }