From 83fb99bd763f63715076ed3ca56de76512b3113c Mon Sep 17 00:00:00 2001 From: Martisca Paul Date: Tue, 28 Jul 2020 18:57:30 +0300 Subject: [PATCH 1/3] Added 2 Methods and made Unit Tests for them The 2 methods are GetCoffeeDatas and DeleteFirstCoffeeData --- .../Interfaces/ICoffeeDataService.cs | 6 ++- .../Services/CoffeeDataService.cs | 21 ++++++++ .../ServiceSetUp.cs | 7 ++- .../Services/CoffeeDataServiceTests.cs | 51 +++++++++++++++++++ 4 files changed, 82 insertions(+), 3 deletions(-) create mode 100644 CoffeeMachineSimulator/CoffeeMachineSimulator.Tests/Services/CoffeeDataServiceTests.cs diff --git a/CoffeeMachineSimulator/CoffeeMachineSimulator.Services/Interfaces/ICoffeeDataService.cs b/CoffeeMachineSimulator/CoffeeMachineSimulator.Services/Interfaces/ICoffeeDataService.cs index e239f5f..57eb407 100644 --- a/CoffeeMachineSimulator/CoffeeMachineSimulator.Services/Interfaces/ICoffeeDataService.cs +++ b/CoffeeMachineSimulator/CoffeeMachineSimulator.Services/Interfaces/ICoffeeDataService.cs @@ -1,4 +1,6 @@ -using CoffeeMachineSimulator.Sender.Model.CoffeeMachine.Simulator.Sender.Model; +using CoffeeMachineSimulator.Data.Entities; +using CoffeeMachineSimulator.Sender.Model.CoffeeMachine.Simulator.Sender.Model; +using System.Collections.Generic; using System.Threading.Tasks; namespace CoffeeMachineSimulator.Services.Interfaces @@ -6,5 +8,7 @@ namespace CoffeeMachineSimulator.Services.Interfaces public interface ICoffeeDataService { Task AddCoffeeData(CoffeeMachineData coffeeMachineData); + Task> GetCoffeeDatas(); + Task DeleteFirstCoffeeData(); } } diff --git a/CoffeeMachineSimulator/CoffeeMachineSimulator.Services/Services/CoffeeDataService.cs b/CoffeeMachineSimulator/CoffeeMachineSimulator.Services/Services/CoffeeDataService.cs index 4dcc550..a98dde4 100644 --- a/CoffeeMachineSimulator/CoffeeMachineSimulator.Services/Services/CoffeeDataService.cs +++ b/CoffeeMachineSimulator/CoffeeMachineSimulator.Services/Services/CoffeeDataService.cs @@ -3,6 +3,9 @@ using CoffeeMachineSimulator.Data.Entities; using CoffeeMachineSimulator.Sender.Model.CoffeeMachine.Simulator.Sender.Model; using CoffeeMachineSimulator.Services.Interfaces; +using Microsoft.EntityFrameworkCore; +using System; +using System.Collections.Generic; using System.Threading.Tasks; namespace CoffeeMachineSimulator.Services.Services @@ -19,10 +22,28 @@ public CoffeeDataService(CoffeeContext context, IMapper mapper) } public async Task AddCoffeeData(CoffeeMachineData coffeeMachineData) { + if (coffeeMachineData == null) throw new Exception("You should not add null entry"); + var myCoffeeDataToAdd = mapper.Map(coffeeMachineData); await coffeeContext.CoffeeDataEntities.AddAsync(myCoffeeDataToAdd); await coffeeContext.SaveChangesAsync(); } + + public async Task DeleteFirstCoffeeData() + { + var coffeeToDelete = await coffeeContext.CoffeeDataEntities.FirstOrDefaultAsync(); + + coffeeContext.CoffeeDataEntities.Remove(coffeeToDelete); + + await coffeeContext.SaveChangesAsync(); + } + + public async Task> GetCoffeeDatas() + { + var coffeeDataEntities = await coffeeContext.CoffeeDataEntities.ToListAsync(); + + return mapper.Map>(coffeeDataEntities); + } } } diff --git a/CoffeeMachineSimulator/CoffeeMachineSimulator.Tests/ServiceSetUp.cs b/CoffeeMachineSimulator/CoffeeMachineSimulator.Tests/ServiceSetUp.cs index cbb15a3..af87faa 100644 --- a/CoffeeMachineSimulator/CoffeeMachineSimulator.Tests/ServiceSetUp.cs +++ b/CoffeeMachineSimulator/CoffeeMachineSimulator.Tests/ServiceSetUp.cs @@ -10,8 +10,7 @@ namespace CoffeeMachineSimulator.Tests { public class ServiceSetUp { - protected static readonly Guid CoffeeEspressorId = Guid.NewGuid(); - protected static readonly Guid EspressorEspressorId = Guid.NewGuid(); + protected readonly Mapper Mapper; protected CoffeeContext Context { get; private set; } @@ -26,6 +25,8 @@ protected void SetUpDatabase() var options = new DbContextOptionsBuilder() .UseInMemoryDatabase(databaseName: "CoffeeDb") .Options; + Guid CoffeeEspressorId = Guid.NewGuid(); + Guid EspressorEspressorId = Guid.NewGuid(); Context = new CoffeeContext(options); @@ -36,6 +37,8 @@ protected void SetUpDatabase() Context.Coffees.Add(new CoffeeEntity { Name = "Second Coffee", Price = 30, Sweetness = Sweetness.Sweet, EspressoMachineId = EspressorEspressorId }); Context.Coffees.Add(new CoffeeEntity { Name = "Third Coffee", Price = 45, Sweetness = Sweetness.LessSweet, EspressoMachineId = EspressorEspressorId }); + Context.CoffeeDataEntities.Add(new CoffeeDataEntity { City = "Brasov", RecordingTime=DateTime.Now, SensorType="Ceva", SensorValue=1, SerialNumber="12345" }); + Context.SaveChanges(); } diff --git a/CoffeeMachineSimulator/CoffeeMachineSimulator.Tests/Services/CoffeeDataServiceTests.cs b/CoffeeMachineSimulator/CoffeeMachineSimulator.Tests/Services/CoffeeDataServiceTests.cs new file mode 100644 index 0000000..d2391fc --- /dev/null +++ b/CoffeeMachineSimulator/CoffeeMachineSimulator.Tests/Services/CoffeeDataServiceTests.cs @@ -0,0 +1,51 @@ +using CoffeeMachineSimulator.Data.Entities; +using CoffeeMachineSimulator.Services.Services; +using NUnit.Framework; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace CoffeeMachineSimulator.Tests.Services +{ + [TestFixture] + public class CoffeeDataServiceTests : ServiceSetUp + { + private CoffeeDataService coffeeDataService; + public CoffeeDataServiceTests() : base() { } + + [SetUp] + public void SetUp() + { + coffeeDataService = new CoffeeDataService(Context, Mapper); + } + [Test] + public async Task DeleteFirstCoffeeData_DeletesCoffeeData() + { + var expectedCountOfCoffees = (await coffeeDataService.GetCoffeeDatas()).Count; + + await coffeeDataService.DeleteFirstCoffeeData(); + + var actualCountOfCoffees = (await coffeeDataService.GetCoffeeDatas()).Count; + + Assert.AreNotEqual(expectedCountOfCoffees, actualCountOfCoffees); + } + + [Test] + public void AddNullCoffeeData_Throws_NewException() + { + var ex = Assert.ThrowsAsync(() => coffeeDataService.AddCoffeeData(null)); + + Assert.AreEqual(ex.Message, "You should not add null entry"); + } + + [Test] + public async Task GetCoffeeDatas_Returns_ListOfCoffeeDataEntities() + { + var coffeesReturned = await coffeeDataService.GetCoffeeDatas(); + + Assert.IsNotNull(coffeesReturned); + Assert.IsInstanceOf(typeof(List), coffeesReturned); + } + } + +} From 1ff4bcdd49cb6e2de6633747f765ca912a622d11 Mon Sep 17 00:00:00 2001 From: Martisca Paul Date: Tue, 28 Jul 2020 19:02:26 +0300 Subject: [PATCH 2/3] Rename --- .../Services/CoffeeDataServiceTests.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CoffeeMachineSimulator/CoffeeMachineSimulator.Tests/Services/CoffeeDataServiceTests.cs b/CoffeeMachineSimulator/CoffeeMachineSimulator.Tests/Services/CoffeeDataServiceTests.cs index d2391fc..bb18966 100644 --- a/CoffeeMachineSimulator/CoffeeMachineSimulator.Tests/Services/CoffeeDataServiceTests.cs +++ b/CoffeeMachineSimulator/CoffeeMachineSimulator.Tests/Services/CoffeeDataServiceTests.cs @@ -21,13 +21,13 @@ public void SetUp() [Test] public async Task DeleteFirstCoffeeData_DeletesCoffeeData() { - var expectedCountOfCoffees = (await coffeeDataService.GetCoffeeDatas()).Count; + var expectedCountOfCoffeeDatas = (await coffeeDataService.GetCoffeeDatas()).Count; await coffeeDataService.DeleteFirstCoffeeData(); - var actualCountOfCoffees = (await coffeeDataService.GetCoffeeDatas()).Count; + var actualCountOfCoffeeDatas = (await coffeeDataService.GetCoffeeDatas()).Count; - Assert.AreNotEqual(expectedCountOfCoffees, actualCountOfCoffees); + Assert.AreNotEqual(expectedCountOfCoffeeDatas, actualCountOfCoffeeDatas); } [Test] @@ -41,10 +41,10 @@ public void AddNullCoffeeData_Throws_NewException() [Test] public async Task GetCoffeeDatas_Returns_ListOfCoffeeDataEntities() { - var coffeesReturned = await coffeeDataService.GetCoffeeDatas(); + var coffeeDatasReturned = await coffeeDataService.GetCoffeeDatas(); - Assert.IsNotNull(coffeesReturned); - Assert.IsInstanceOf(typeof(List), coffeesReturned); + Assert.IsNotNull(coffeeDatasReturned); + Assert.IsInstanceOf(typeof(List), coffeeDatasReturned); } } From a558e568bd2d5c9e39f941fcedec3630e76a086f Mon Sep 17 00:00:00 2001 From: Martisca Paul Date: Tue, 28 Jul 2020 19:14:43 +0300 Subject: [PATCH 3/3] Changed List Type and Added 1 more CoffeeDataEntity --- .../Interfaces/ICoffeeDataService.cs | 2 +- .../Services/CoffeeDataService.cs | 4 ++-- .../CoffeeMachineSimulator.Tests/ServiceSetUp.cs | 3 ++- .../Services/CoffeeDataServiceTests.cs | 4 ++-- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/CoffeeMachineSimulator/CoffeeMachineSimulator.Services/Interfaces/ICoffeeDataService.cs b/CoffeeMachineSimulator/CoffeeMachineSimulator.Services/Interfaces/ICoffeeDataService.cs index 57eb407..3d6494e 100644 --- a/CoffeeMachineSimulator/CoffeeMachineSimulator.Services/Interfaces/ICoffeeDataService.cs +++ b/CoffeeMachineSimulator/CoffeeMachineSimulator.Services/Interfaces/ICoffeeDataService.cs @@ -8,7 +8,7 @@ namespace CoffeeMachineSimulator.Services.Interfaces public interface ICoffeeDataService { Task AddCoffeeData(CoffeeMachineData coffeeMachineData); - Task> GetCoffeeDatas(); + Task> GetCoffeeDatas(); Task DeleteFirstCoffeeData(); } } diff --git a/CoffeeMachineSimulator/CoffeeMachineSimulator.Services/Services/CoffeeDataService.cs b/CoffeeMachineSimulator/CoffeeMachineSimulator.Services/Services/CoffeeDataService.cs index a98dde4..ebee847 100644 --- a/CoffeeMachineSimulator/CoffeeMachineSimulator.Services/Services/CoffeeDataService.cs +++ b/CoffeeMachineSimulator/CoffeeMachineSimulator.Services/Services/CoffeeDataService.cs @@ -39,11 +39,11 @@ public async Task DeleteFirstCoffeeData() await coffeeContext.SaveChangesAsync(); } - public async Task> GetCoffeeDatas() + public async Task> GetCoffeeDatas() { var coffeeDataEntities = await coffeeContext.CoffeeDataEntities.ToListAsync(); - return mapper.Map>(coffeeDataEntities); + return mapper.Map>(coffeeDataEntities); } } } diff --git a/CoffeeMachineSimulator/CoffeeMachineSimulator.Tests/ServiceSetUp.cs b/CoffeeMachineSimulator/CoffeeMachineSimulator.Tests/ServiceSetUp.cs index af87faa..9fbbd61 100644 --- a/CoffeeMachineSimulator/CoffeeMachineSimulator.Tests/ServiceSetUp.cs +++ b/CoffeeMachineSimulator/CoffeeMachineSimulator.Tests/ServiceSetUp.cs @@ -37,7 +37,8 @@ protected void SetUpDatabase() Context.Coffees.Add(new CoffeeEntity { Name = "Second Coffee", Price = 30, Sweetness = Sweetness.Sweet, EspressoMachineId = EspressorEspressorId }); Context.Coffees.Add(new CoffeeEntity { Name = "Third Coffee", Price = 45, Sweetness = Sweetness.LessSweet, EspressoMachineId = EspressorEspressorId }); - Context.CoffeeDataEntities.Add(new CoffeeDataEntity { City = "Brasov", RecordingTime=DateTime.Now, SensorType="Ceva", SensorValue=1, SerialNumber="12345" }); + Context.CoffeeDataEntities.Add(new CoffeeDataEntity { City = "Brasov", RecordingTime=DateTime.Now, SensorType="Sensor1", SensorValue=1, SerialNumber="12345" }); + Context.CoffeeDataEntities.Add(new CoffeeDataEntity { City = "Cluj", RecordingTime = DateTime.Now, SensorType = "Sensor2", SensorValue = 2, SerialNumber = "12346" }); Context.SaveChanges(); } diff --git a/CoffeeMachineSimulator/CoffeeMachineSimulator.Tests/Services/CoffeeDataServiceTests.cs b/CoffeeMachineSimulator/CoffeeMachineSimulator.Tests/Services/CoffeeDataServiceTests.cs index bb18966..8daf8ef 100644 --- a/CoffeeMachineSimulator/CoffeeMachineSimulator.Tests/Services/CoffeeDataServiceTests.cs +++ b/CoffeeMachineSimulator/CoffeeMachineSimulator.Tests/Services/CoffeeDataServiceTests.cs @@ -1,4 +1,4 @@ -using CoffeeMachineSimulator.Data.Entities; +using CoffeeMachineSimulator.Sender.Model.CoffeeMachine.Simulator.Sender.Model; using CoffeeMachineSimulator.Services.Services; using NUnit.Framework; using System; @@ -44,7 +44,7 @@ public async Task GetCoffeeDatas_Returns_ListOfCoffeeDataEntities() var coffeeDatasReturned = await coffeeDataService.GetCoffeeDatas(); Assert.IsNotNull(coffeeDatasReturned); - Assert.IsInstanceOf(typeof(List), coffeeDatasReturned); + Assert.IsInstanceOf(typeof(List), coffeeDatasReturned); } }