From 6ab726c8cb3eee46da429bf6553f347582cab421 Mon Sep 17 00:00:00 2001 From: Matthew Renze Date: Mon, 12 Dec 2016 20:56:01 -0600 Subject: [PATCH] Added remaining acceptance tests --- .../GetCustomersList/GetCustomersList.feature | 12 +++ .../GetCustomersList.feature.cs | 97 +++++++++++++++++ .../GetCustomersList/GetCustomersListSteps.cs | 51 +++++++++ .../GetEmployeesList/GetEmployeesList.feature | 12 +++ .../GetEmployeesList.feature.cs | 97 +++++++++++++++++ .../GetEmployeesList/GetEmployeesListSteps.cs | 51 +++++++++ .../Products/GetProductsList.feature | 12 +++ .../Products/GetProductsList.feature.cs | 101 ++++++++++++++++++ .../Products/GetProductsListSteps.cs | 54 ++++++++++ .../Sales/CreateASale/CreateASaleSteps.cs | 17 +-- .../GetSaleDetails.feature} | 8 +- .../GetSaleDetails.feature.cs} | 20 ++-- .../GetSaleDetailsModel.cs} | 4 +- .../GetSaleDetailsSteps.cs} | 20 ++-- .../GetSalesList.feature} | 8 +- .../GetSalesList.feature.cs} | 20 ++-- .../GetSalesListModel.cs} | 4 +- .../GetSalesListSteps.cs} | 19 ++-- Specification/Specification.csproj | 60 ++++++++--- 19 files changed, 592 insertions(+), 75 deletions(-) create mode 100644 Specification/Customers/GetCustomersList/GetCustomersList.feature create mode 100644 Specification/Customers/GetCustomersList/GetCustomersList.feature.cs create mode 100644 Specification/Customers/GetCustomersList/GetCustomersListSteps.cs create mode 100644 Specification/Employees/GetEmployeesList/GetEmployeesList.feature create mode 100644 Specification/Employees/GetEmployeesList/GetEmployeesList.feature.cs create mode 100644 Specification/Employees/GetEmployeesList/GetEmployeesListSteps.cs create mode 100644 Specification/Products/GetProductsList.feature create mode 100644 Specification/Products/GetProductsList.feature.cs create mode 100644 Specification/Products/GetProductsListSteps.cs rename Specification/Sales/{ViewSaleDetails/ViewSaleDetails.feature => GetSaleDetails/GetSaleDetails.feature} (66%) rename Specification/Sales/{ViewSaleDetails/ViewSaleDetails.feature.cs => GetSaleDetails/GetSaleDetails.feature.cs} (81%) rename Specification/Sales/{ViewSaleDetails/ViewSaleDetailsModel.cs => GetSaleDetails/GetSaleDetailsModel.cs} (81%) rename Specification/Sales/{ViewSaleDetails/ViewSaleDetailsSteps.cs => GetSaleDetails/GetSaleDetailsSteps.cs} (68%) rename Specification/Sales/{ViewSalesList/ViewSalesList.feature => GetSalesList/GetSalesList.feature} (71%) rename Specification/Sales/{ViewSalesList/ViewSalesList.feature.cs => GetSalesList/GetSalesList.feature.cs} (84%) rename Specification/Sales/{ViewSalesList/ViewSalesListModel.cs => GetSalesList/GetSalesListModel.cs} (81%) rename Specification/Sales/{ViewSalesList/ViewSalesListSteps.cs => GetSalesList/GetSalesListSteps.cs} (73%) diff --git a/Specification/Customers/GetCustomersList/GetCustomersList.feature b/Specification/Customers/GetCustomersList/GetCustomersList.feature new file mode 100644 index 0000000..9dadc12 --- /dev/null +++ b/Specification/Customers/GetCustomersList/GetCustomersList.feature @@ -0,0 +1,12 @@ +Feature: Get Customers List + As a sales person + I want to get a list of customers + So I can inspect the customers + +Scenario: Get a List of Customers + When I request a list of customers + Then the following customers should be returned: + | Id | Name | + | 1 | Martin Fowler | + | 2 | Uncle Bob | + | 3 | Kent Beck | diff --git a/Specification/Customers/GetCustomersList/GetCustomersList.feature.cs b/Specification/Customers/GetCustomersList/GetCustomersList.feature.cs new file mode 100644 index 0000000..498206f --- /dev/null +++ b/Specification/Customers/GetCustomersList/GetCustomersList.feature.cs @@ -0,0 +1,97 @@ +// ------------------------------------------------------------------------------ +// +// This code was generated by SpecFlow (http://www.specflow.org/). +// SpecFlow Version:2.1.0.0 +// SpecFlow Generator Version:2.0.0.0 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +// ------------------------------------------------------------------------------ +#region Designer generated code +#pragma warning disable +namespace CleanArchitecture.Specification.Customers.GetCustomersList +{ + using TechTalk.SpecFlow; + + + [System.CodeDom.Compiler.GeneratedCodeAttribute("TechTalk.SpecFlow", "2.1.0.0")] + [System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [NUnit.Framework.TestFixtureAttribute()] + [NUnit.Framework.DescriptionAttribute("Get Customers List")] + public partial class GetCustomersListFeature + { + + private TechTalk.SpecFlow.ITestRunner testRunner; + +#line 1 "GetCustomersList.feature" +#line hidden + + [NUnit.Framework.TestFixtureSetUpAttribute()] + public virtual void FeatureSetup() + { + testRunner = TechTalk.SpecFlow.TestRunnerManager.GetTestRunner(); + TechTalk.SpecFlow.FeatureInfo featureInfo = new TechTalk.SpecFlow.FeatureInfo(new System.Globalization.CultureInfo("en-US"), "Get Customers List", "\tAs a sales person\r\n\tI want to get a list of customers\r\n\tSo I can inspect the cus" + + "tomers", ProgrammingLanguage.CSharp, ((string[])(null))); + testRunner.OnFeatureStart(featureInfo); + } + + [NUnit.Framework.TestFixtureTearDownAttribute()] + public virtual void FeatureTearDown() + { + testRunner.OnFeatureEnd(); + testRunner = null; + } + + [NUnit.Framework.SetUpAttribute()] + public virtual void TestInitialize() + { + } + + [NUnit.Framework.TearDownAttribute()] + public virtual void ScenarioTearDown() + { + testRunner.OnScenarioEnd(); + } + + public virtual void ScenarioSetup(TechTalk.SpecFlow.ScenarioInfo scenarioInfo) + { + testRunner.OnScenarioStart(scenarioInfo); + } + + public virtual void ScenarioCleanup() + { + testRunner.CollectScenarioErrors(); + } + + [NUnit.Framework.TestAttribute()] + [NUnit.Framework.DescriptionAttribute("Get a List of Customers")] + public virtual void GetAListOfCustomers() + { + TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("Get a List of Customers", ((string[])(null))); +#line 6 +this.ScenarioSetup(scenarioInfo); +#line 7 + testRunner.When("I request a list of customers", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "When "); +#line hidden + TechTalk.SpecFlow.Table table1 = new TechTalk.SpecFlow.Table(new string[] { + "Id", + "Name"}); + table1.AddRow(new string[] { + "1", + "Martin Fowler"}); + table1.AddRow(new string[] { + "2", + "Uncle Bob"}); + table1.AddRow(new string[] { + "3", + "Kent Beck"}); +#line 8 + testRunner.Then("the following customers should be returned:", ((string)(null)), table1, "Then "); +#line hidden + this.ScenarioCleanup(); + } + } +} +#pragma warning restore +#endregion diff --git a/Specification/Customers/GetCustomersList/GetCustomersListSteps.cs b/Specification/Customers/GetCustomersList/GetCustomersListSteps.cs new file mode 100644 index 0000000..ad40f3b --- /dev/null +++ b/Specification/Customers/GetCustomersList/GetCustomersListSteps.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using CleanArchitecture.Application.Customers.Queries.GetCustomerList; +using CleanArchitecture.Specification.Common; +using NUnit.Framework; +using TechTalk.SpecFlow; +using TechTalk.SpecFlow.Assist; + +namespace CleanArchitecture.Specification.Customers.GetCustomersList +{ + [Binding] + public class GetCustomersListSteps + { + private readonly AppContext _context; + private List _results; + + public GetCustomersListSteps(AppContext context) + { + _context = context; + } + + [When(@"I request a list of customers")] + public void WhenIRequestAListOfCustomers() + { + var query = _context.Container + .GetInstance(); + + _results = query.Execute(); + } + + [Then(@"the following customers should be returned:")] + public void ThenTheFollowingCustomersShouldBeReturned(Table table) + { + var models = table.CreateSet().ToList(); + + for (var i = 0; i < models.Count(); i++) + { + var model = models[i]; + + var result = _results[i]; + + Assert.That(result.Id, + Is.EqualTo(model.Id)); + + Assert.That(result.Name, + Is.EqualTo(model.Name)); + } + } + } +} diff --git a/Specification/Employees/GetEmployeesList/GetEmployeesList.feature b/Specification/Employees/GetEmployeesList/GetEmployeesList.feature new file mode 100644 index 0000000..1898336 --- /dev/null +++ b/Specification/Employees/GetEmployeesList/GetEmployeesList.feature @@ -0,0 +1,12 @@ +Feature: Get Employees List + As a sales person + I want to get a list of employees + So I can inspect the employees + +Scenario: Get a List of Employees + When I request a list of employees + Then the following employees should be returned: + | Id | Name | + | 1 | Eric Evans | + | 2 | Greg Young | + | 3 | Udi Dahan | diff --git a/Specification/Employees/GetEmployeesList/GetEmployeesList.feature.cs b/Specification/Employees/GetEmployeesList/GetEmployeesList.feature.cs new file mode 100644 index 0000000..769abcc --- /dev/null +++ b/Specification/Employees/GetEmployeesList/GetEmployeesList.feature.cs @@ -0,0 +1,97 @@ +// ------------------------------------------------------------------------------ +// +// This code was generated by SpecFlow (http://www.specflow.org/). +// SpecFlow Version:2.1.0.0 +// SpecFlow Generator Version:2.0.0.0 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +// ------------------------------------------------------------------------------ +#region Designer generated code +#pragma warning disable +namespace CleanArchitecture.Specification.Employees.GetEmployeesList +{ + using TechTalk.SpecFlow; + + + [System.CodeDom.Compiler.GeneratedCodeAttribute("TechTalk.SpecFlow", "2.1.0.0")] + [System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [NUnit.Framework.TestFixtureAttribute()] + [NUnit.Framework.DescriptionAttribute("Get Employees List")] + public partial class GetEmployeesListFeature + { + + private TechTalk.SpecFlow.ITestRunner testRunner; + +#line 1 "GetEmployeesList.feature" +#line hidden + + [NUnit.Framework.TestFixtureSetUpAttribute()] + public virtual void FeatureSetup() + { + testRunner = TechTalk.SpecFlow.TestRunnerManager.GetTestRunner(); + TechTalk.SpecFlow.FeatureInfo featureInfo = new TechTalk.SpecFlow.FeatureInfo(new System.Globalization.CultureInfo("en-US"), "Get Employees List", "\tAs a sales person\r\n\tI want to get a list of employees\r\n\tSo I can inspect the emp" + + "loyees", ProgrammingLanguage.CSharp, ((string[])(null))); + testRunner.OnFeatureStart(featureInfo); + } + + [NUnit.Framework.TestFixtureTearDownAttribute()] + public virtual void FeatureTearDown() + { + testRunner.OnFeatureEnd(); + testRunner = null; + } + + [NUnit.Framework.SetUpAttribute()] + public virtual void TestInitialize() + { + } + + [NUnit.Framework.TearDownAttribute()] + public virtual void ScenarioTearDown() + { + testRunner.OnScenarioEnd(); + } + + public virtual void ScenarioSetup(TechTalk.SpecFlow.ScenarioInfo scenarioInfo) + { + testRunner.OnScenarioStart(scenarioInfo); + } + + public virtual void ScenarioCleanup() + { + testRunner.CollectScenarioErrors(); + } + + [NUnit.Framework.TestAttribute()] + [NUnit.Framework.DescriptionAttribute("Get a List of Employees")] + public virtual void GetAListOfEmployees() + { + TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("Get a List of Employees", ((string[])(null))); +#line 6 +this.ScenarioSetup(scenarioInfo); +#line 7 + testRunner.When("I request a list of employees", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "When "); +#line hidden + TechTalk.SpecFlow.Table table1 = new TechTalk.SpecFlow.Table(new string[] { + "Id", + "Name"}); + table1.AddRow(new string[] { + "1", + "Eric Evans"}); + table1.AddRow(new string[] { + "2", + "Greg Young"}); + table1.AddRow(new string[] { + "3", + "Udi Dahan"}); +#line 8 + testRunner.Then("the following employees should be returned:", ((string)(null)), table1, "Then "); +#line hidden + this.ScenarioCleanup(); + } + } +} +#pragma warning restore +#endregion diff --git a/Specification/Employees/GetEmployeesList/GetEmployeesListSteps.cs b/Specification/Employees/GetEmployeesList/GetEmployeesListSteps.cs new file mode 100644 index 0000000..2a7d1e5 --- /dev/null +++ b/Specification/Employees/GetEmployeesList/GetEmployeesListSteps.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using CleanArchitecture.Application.Employees.Queries.GetEmployeesList; +using CleanArchitecture.Specification.Common; +using NUnit.Framework; +using TechTalk.SpecFlow; +using TechTalk.SpecFlow.Assist; + +namespace CleanArchitecture.Specification.Employees.GetEmployeesList +{ + [Binding] + public class GetEmployeesListSteps + { + private readonly AppContext _context; + private List _results; + + public GetEmployeesListSteps(AppContext context) + { + _context = context; + } + + [When(@"I request a list of employees")] + public void WhenIRequestAListOfEmployees() + { + var query = _context.Container + .GetInstance(); + + _results = query.Execute(); + } + + [Then(@"the following employees should be returned:")] + public void ThenTheFollowingEmployeesShouldBeReturned(Table table) + { + var models = table.CreateSet().ToList(); + + for (var i = 0; i < models.Count(); i++) + { + var model = models[i]; + + var result = _results[i]; + + Assert.That(result.Id, + Is.EqualTo(model.Id)); + + Assert.That(result.Name, + Is.EqualTo(model.Name)); + } + } + } +} diff --git a/Specification/Products/GetProductsList.feature b/Specification/Products/GetProductsList.feature new file mode 100644 index 0000000..4999432 --- /dev/null +++ b/Specification/Products/GetProductsList.feature @@ -0,0 +1,12 @@ +Feature: Get Products List + As a sales person + I want to get a list of products + So I can inspect the products + +Scenario: Get a List of Products + When I request a list of products + Then the following products should be returned: + | Id | Name | Unit Price | + | 1 | Spaghetti | 5.00 | + | 2 | Lasagne | 10.00 | + | 3 | Ravioli | 15.00 | diff --git a/Specification/Products/GetProductsList.feature.cs b/Specification/Products/GetProductsList.feature.cs new file mode 100644 index 0000000..59938a4 --- /dev/null +++ b/Specification/Products/GetProductsList.feature.cs @@ -0,0 +1,101 @@ +// ------------------------------------------------------------------------------ +// +// This code was generated by SpecFlow (http://www.specflow.org/). +// SpecFlow Version:2.1.0.0 +// SpecFlow Generator Version:2.0.0.0 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +// ------------------------------------------------------------------------------ +#region Designer generated code +#pragma warning disable +namespace CleanArchitecture.Specification.Products +{ + using TechTalk.SpecFlow; + + + [System.CodeDom.Compiler.GeneratedCodeAttribute("TechTalk.SpecFlow", "2.1.0.0")] + [System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [NUnit.Framework.TestFixtureAttribute()] + [NUnit.Framework.DescriptionAttribute("Get Products List")] + public partial class GetProductsListFeature + { + + private TechTalk.SpecFlow.ITestRunner testRunner; + +#line 1 "GetProductsList.feature" +#line hidden + + [NUnit.Framework.TestFixtureSetUpAttribute()] + public virtual void FeatureSetup() + { + testRunner = TechTalk.SpecFlow.TestRunnerManager.GetTestRunner(); + TechTalk.SpecFlow.FeatureInfo featureInfo = new TechTalk.SpecFlow.FeatureInfo(new System.Globalization.CultureInfo("en-US"), "Get Products List", "\tAs a sales person\r\n\tI want to get a list of products\r\n\tSo I can inspect the prod" + + "ucts", ProgrammingLanguage.CSharp, ((string[])(null))); + testRunner.OnFeatureStart(featureInfo); + } + + [NUnit.Framework.TestFixtureTearDownAttribute()] + public virtual void FeatureTearDown() + { + testRunner.OnFeatureEnd(); + testRunner = null; + } + + [NUnit.Framework.SetUpAttribute()] + public virtual void TestInitialize() + { + } + + [NUnit.Framework.TearDownAttribute()] + public virtual void ScenarioTearDown() + { + testRunner.OnScenarioEnd(); + } + + public virtual void ScenarioSetup(TechTalk.SpecFlow.ScenarioInfo scenarioInfo) + { + testRunner.OnScenarioStart(scenarioInfo); + } + + public virtual void ScenarioCleanup() + { + testRunner.CollectScenarioErrors(); + } + + [NUnit.Framework.TestAttribute()] + [NUnit.Framework.DescriptionAttribute("Get a List of Products")] + public virtual void GetAListOfProducts() + { + TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("Get a List of Products", ((string[])(null))); +#line 6 +this.ScenarioSetup(scenarioInfo); +#line 7 + testRunner.When("I request a list of products", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "When "); +#line hidden + TechTalk.SpecFlow.Table table1 = new TechTalk.SpecFlow.Table(new string[] { + "Id", + "Name", + "Unit Price"}); + table1.AddRow(new string[] { + "1", + "Spaghetti", + "5.00"}); + table1.AddRow(new string[] { + "2", + "Lasagne", + "10.00"}); + table1.AddRow(new string[] { + "3", + "Ravioli", + "15.00"}); +#line 8 + testRunner.Then("the following products should be returned:", ((string)(null)), table1, "Then "); +#line hidden + this.ScenarioCleanup(); + } + } +} +#pragma warning restore +#endregion diff --git a/Specification/Products/GetProductsListSteps.cs b/Specification/Products/GetProductsListSteps.cs new file mode 100644 index 0000000..b372e74 --- /dev/null +++ b/Specification/Products/GetProductsListSteps.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using CleanArchitecture.Application.Products.Queries.GetProductsList; +using CleanArchitecture.Specification.Common; +using NUnit.Framework; +using TechTalk.SpecFlow; +using TechTalk.SpecFlow.Assist; + +namespace CleanArchitecture.Specification.Products +{ + [Binding] + public class GetProductsListSteps + { + private readonly AppContext _context; + private List _results; + + public GetProductsListSteps(AppContext context) + { + _context = context; + } + + [When(@"I request a list of products")] + public void WhenIRequestAListOfProducts() + { + var query = _context.Container + .GetInstance(); + + _results = query.Execute(); + } + + [Then(@"the following products should be returned:")] + public void ThenTheFollowingProductsShouldBeReturned(Table table) + { + var models = table.CreateSet().ToList(); + + for (var i = 0; i < models.Count(); i++) + { + var model = models[i]; + + var result = _results[i]; + + Assert.That(result.Id, + Is.EqualTo(model.Id)); + + Assert.That(result.Name, + Is.EqualTo(model.Name)); + + Assert.That(result.UnitPrice, + Is.EqualTo(model.UnitPrice)); + } + } + } +} diff --git a/Specification/Sales/CreateASale/CreateASaleSteps.cs b/Specification/Sales/CreateASale/CreateASaleSteps.cs index 228cd81..7159dfb 100644 --- a/Specification/Sales/CreateASale/CreateASaleSteps.cs +++ b/Specification/Sales/CreateASale/CreateASaleSteps.cs @@ -14,12 +14,12 @@ namespace CleanArchitecture.Specification.Sales.CreateASale [Binding] public class CreateASaleSteps { - private readonly AppContext _appContext; + private readonly AppContext _context; private CreateSaleModel _model; - public CreateASaleSteps(AppContext appContext) + public CreateASaleSteps(AppContext context) { - _appContext = appContext; + _context = context; } [Given(@"the following sale info:")] @@ -27,11 +27,11 @@ public void GivenTheFollowingSaleInfo(Table table) { var saleInfo = table.CreateInstance(); - _appContext.Mocker.GetMock() + _context.Mocker.GetMock() .Setup(p => p.GetDate()) .Returns(saleInfo.Date); - var mockDatabase = _appContext.Mocker.GetMock(); + var mockDatabase = _context.Mocker.GetMock(); var lookup = new DatabaseLookup(mockDatabase.Object); @@ -47,7 +47,8 @@ public void GivenTheFollowingSaleInfo(Table table) [When(@"I create a sale")] public void WhenICreateASale() { - var command = _appContext.Container.GetInstance(); + var command = _context.Container + .GetInstance(); command.Execute(_model); } @@ -57,7 +58,7 @@ public void ThenTheFollowingSalesRecordShouldBeRecorded(Table table) { var saleRecord = table.CreateInstance(); - var database = _appContext.DatabaseService; + var database = _context.DatabaseService; var sale = database.Sales.Last(); @@ -96,7 +97,7 @@ public void ThenTheFollowingNotificationThatASaleOccurredShouldBeSentToTheInvent { var notification = table.CreateInstance(); - var mockInventoryClient = _appContext.Mocker.GetMock(); + var mockInventoryClient = _context.Mocker.GetMock(); mockInventoryClient.Verify(p => p.NotifySaleOcurred( notification.ProductId, diff --git a/Specification/Sales/ViewSaleDetails/ViewSaleDetails.feature b/Specification/Sales/GetSaleDetails/GetSaleDetails.feature similarity index 66% rename from Specification/Sales/ViewSaleDetails/ViewSaleDetails.feature rename to Specification/Sales/GetSaleDetails/GetSaleDetails.feature index 90483b6..8c3ed0b 100644 --- a/Specification/Sales/ViewSaleDetails/ViewSaleDetails.feature +++ b/Specification/Sales/GetSaleDetails/GetSaleDetails.feature @@ -1,10 +1,10 @@ -Feature: View Sale Details +Feature: Get Sale Details As a sales person - I want to view the details of a sale + I want to get the details of a sale So that I can review the sale -Scenario: View Sale Details +Scenario: Get Sale Details When I request the sale details for sale 1 - Then the following sale details should be displayed: + Then the following sale details should be returned: | Id | Date | Customer | Employee | Product | Unit Price | Quantity | Total Price | | 1 | 2001-02-03 | Martin Fowler | Eric Evans | Spaghetti | 5.00 | 1 | 5.00 | diff --git a/Specification/Sales/ViewSaleDetails/ViewSaleDetails.feature.cs b/Specification/Sales/GetSaleDetails/GetSaleDetails.feature.cs similarity index 81% rename from Specification/Sales/ViewSaleDetails/ViewSaleDetails.feature.cs rename to Specification/Sales/GetSaleDetails/GetSaleDetails.feature.cs index c5660af..379f7e4 100644 --- a/Specification/Sales/ViewSaleDetails/ViewSaleDetails.feature.cs +++ b/Specification/Sales/GetSaleDetails/GetSaleDetails.feature.cs @@ -10,7 +10,7 @@ // ------------------------------------------------------------------------------ #region Designer generated code #pragma warning disable -namespace CleanArchitecture.Specification.Sales.ViewSaleDetails +namespace CleanArchitecture.Specification.Sales.GetSaleDetails { using TechTalk.SpecFlow; @@ -18,21 +18,21 @@ namespace CleanArchitecture.Specification.Sales.ViewSaleDetails [System.CodeDom.Compiler.GeneratedCodeAttribute("TechTalk.SpecFlow", "2.1.0.0")] [System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [NUnit.Framework.TestFixtureAttribute()] - [NUnit.Framework.DescriptionAttribute("View Sale Details")] - public partial class ViewSaleDetailsFeature + [NUnit.Framework.DescriptionAttribute("Get Sale Details")] + public partial class GetSaleDetailsFeature { private TechTalk.SpecFlow.ITestRunner testRunner; -#line 1 "ViewSaleDetails.feature" +#line 1 "GetSaleDetails.feature" #line hidden [NUnit.Framework.TestFixtureSetUpAttribute()] public virtual void FeatureSetup() { testRunner = TechTalk.SpecFlow.TestRunnerManager.GetTestRunner(); - TechTalk.SpecFlow.FeatureInfo featureInfo = new TechTalk.SpecFlow.FeatureInfo(new System.Globalization.CultureInfo("en-US"), "View Sale Details", "\tAs a sales person\r\n\tI want to view the details of a sale\r\n\tSo that I can review " + - "the sale", ProgrammingLanguage.CSharp, ((string[])(null))); + TechTalk.SpecFlow.FeatureInfo featureInfo = new TechTalk.SpecFlow.FeatureInfo(new System.Globalization.CultureInfo("en-US"), "Get Sale Details", "\tAs a sales person\r\n\tI want to get the details of a sale\r\n\tSo that I can review t" + + "he sale", ProgrammingLanguage.CSharp, ((string[])(null))); testRunner.OnFeatureStart(featureInfo); } @@ -65,10 +65,10 @@ public virtual void ScenarioCleanup() } [NUnit.Framework.TestAttribute()] - [NUnit.Framework.DescriptionAttribute("View Sale Details")] - public virtual void ViewSaleDetails() + [NUnit.Framework.DescriptionAttribute("Get Sale Details")] + public virtual void GetSaleDetails() { - TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("View Sale Details", ((string[])(null))); + TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("Get Sale Details", ((string[])(null))); #line 6 this.ScenarioSetup(scenarioInfo); #line 7 @@ -93,7 +93,7 @@ public virtual void ViewSaleDetails() "1", "5.00"}); #line 8 - testRunner.Then("the following sale details should be displayed:", ((string)(null)), table1, "Then "); + testRunner.Then("the following sale details should be returned:", ((string)(null)), table1, "Then "); #line hidden this.ScenarioCleanup(); } diff --git a/Specification/Sales/ViewSaleDetails/ViewSaleDetailsModel.cs b/Specification/Sales/GetSaleDetails/GetSaleDetailsModel.cs similarity index 81% rename from Specification/Sales/ViewSaleDetails/ViewSaleDetailsModel.cs rename to Specification/Sales/GetSaleDetails/GetSaleDetailsModel.cs index d45dc5e..9ac2e0f 100644 --- a/Specification/Sales/ViewSaleDetails/ViewSaleDetailsModel.cs +++ b/Specification/Sales/GetSaleDetails/GetSaleDetailsModel.cs @@ -2,9 +2,9 @@ using System.Collections.Generic; using System.Linq; -namespace CleanArchitecture.Specification.Sales.ViewSaleDetails +namespace CleanArchitecture.Specification.Sales.GetSaleDetails { - public class ViewSaleDetailsModel + public class GetSaleDetailsModel { public int Id { get; set; } diff --git a/Specification/Sales/ViewSaleDetails/ViewSaleDetailsSteps.cs b/Specification/Sales/GetSaleDetails/GetSaleDetailsSteps.cs similarity index 68% rename from Specification/Sales/ViewSaleDetails/ViewSaleDetailsSteps.cs rename to Specification/Sales/GetSaleDetails/GetSaleDetailsSteps.cs index 1f9e0ba..7b9c075 100644 --- a/Specification/Sales/ViewSaleDetails/ViewSaleDetailsSteps.cs +++ b/Specification/Sales/GetSaleDetails/GetSaleDetailsSteps.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Linq; using CleanArchitecture.Application.Sales.Queries.GetSaleDetail; using CleanArchitecture.Specification.Common; @@ -6,31 +7,32 @@ using TechTalk.SpecFlow; using TechTalk.SpecFlow.Assist; -namespace CleanArchitecture.Specification.Sales.ViewSaleDetails +namespace CleanArchitecture.Specification.Sales.GetSaleDetails { [Binding] - public class ViewSaleDetailsSteps + public class GetSaleDetailsSteps { - private readonly AppContext _appContext; + private readonly AppContext _context; private SaleDetailModel _result; - public ViewSaleDetailsSteps(AppContext appContext) + public GetSaleDetailsSteps(AppContext context) { - _appContext = appContext; + _context = context; } [When(@"I request the sale details for sale (.*)")] public void WhenIRequestTheSaleDetailsForSale(int saleId) { - var query = _appContext.Container.GetInstance(); + var query = _context.Container + .GetInstance(); _result = query.Execute(saleId); } - [Then(@"the following sale details should be displayed:")] - public void ThenTheFollowingResultsShouldBeDisplayed(Table table) + [Then(@"the following sale details should be returned:")] + public void ThenTheFollowingResultsShouldBeReturned(Table table) { - var model = table.CreateInstance(); + var model = table.CreateInstance(); Assert.That(_result.Id, Is.EqualTo(model.Id)); diff --git a/Specification/Sales/ViewSalesList/ViewSalesList.feature b/Specification/Sales/GetSalesList/GetSalesList.feature similarity index 71% rename from Specification/Sales/ViewSalesList/ViewSalesList.feature rename to Specification/Sales/GetSalesList/GetSalesList.feature index 455c4c1..f86d474 100644 --- a/Specification/Sales/ViewSalesList/ViewSalesList.feature +++ b/Specification/Sales/GetSalesList/GetSalesList.feature @@ -1,12 +1,12 @@ -Feature: View Sales List +Feature: Get Sales List As a sales person - I want to view a list of sales + I want to get a list of sales So I can find a sale to review @mytag -Scenario: View a List of Sales +Scenario: Get a List of Sales When I request a list of sales - Then the following sales list should be displayed: + Then the following sales list should be returned: | Id | Date | Customer | Employee | Product | Unit Price | Quantity | Total Price | | 1 | 2001-02-03 | Martin Fowler | Eric Evans | Spaghetti | 5.00 | 1 | 5.00 | | 2 | 2001-02-04 | Uncle Bob | Greg Young | Lasagne | 10.00 | 2 | 20.00 | diff --git a/Specification/Sales/ViewSalesList/ViewSalesList.feature.cs b/Specification/Sales/GetSalesList/GetSalesList.feature.cs similarity index 84% rename from Specification/Sales/ViewSalesList/ViewSalesList.feature.cs rename to Specification/Sales/GetSalesList/GetSalesList.feature.cs index b9585c6..4a6bf64 100644 --- a/Specification/Sales/ViewSalesList/ViewSalesList.feature.cs +++ b/Specification/Sales/GetSalesList/GetSalesList.feature.cs @@ -10,7 +10,7 @@ // ------------------------------------------------------------------------------ #region Designer generated code #pragma warning disable -namespace CleanArchitecture.Specification.Sales.ViewSalesList +namespace CleanArchitecture.Specification.Sales.GetSalesList { using TechTalk.SpecFlow; @@ -18,21 +18,21 @@ namespace CleanArchitecture.Specification.Sales.ViewSalesList [System.CodeDom.Compiler.GeneratedCodeAttribute("TechTalk.SpecFlow", "2.1.0.0")] [System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [NUnit.Framework.TestFixtureAttribute()] - [NUnit.Framework.DescriptionAttribute("View Sales List")] - public partial class ViewSalesListFeature + [NUnit.Framework.DescriptionAttribute("Get Sales List")] + public partial class GetSalesListFeature { private TechTalk.SpecFlow.ITestRunner testRunner; -#line 1 "ViewSalesList.feature" +#line 1 "GetSalesList.feature" #line hidden [NUnit.Framework.TestFixtureSetUpAttribute()] public virtual void FeatureSetup() { testRunner = TechTalk.SpecFlow.TestRunnerManager.GetTestRunner(); - TechTalk.SpecFlow.FeatureInfo featureInfo = new TechTalk.SpecFlow.FeatureInfo(new System.Globalization.CultureInfo("en-US"), "View Sales List", "\tAs a sales person\r\n\tI want to view a list of sales\r\n\tSo I can find a sale to rev" + - "iew", ProgrammingLanguage.CSharp, ((string[])(null))); + TechTalk.SpecFlow.FeatureInfo featureInfo = new TechTalk.SpecFlow.FeatureInfo(new System.Globalization.CultureInfo("en-US"), "Get Sales List", "\tAs a sales person\r\n\tI want to get a list of sales\r\n\tSo I can find a sale to revi" + + "ew", ProgrammingLanguage.CSharp, ((string[])(null))); testRunner.OnFeatureStart(featureInfo); } @@ -65,11 +65,11 @@ public virtual void ScenarioCleanup() } [NUnit.Framework.TestAttribute()] - [NUnit.Framework.DescriptionAttribute("View a List of Sales")] + [NUnit.Framework.DescriptionAttribute("Get a List of Sales")] [NUnit.Framework.CategoryAttribute("mytag")] - public virtual void ViewAListOfSales() + public virtual void GetAListOfSales() { - TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("View a List of Sales", new string[] { + TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("Get a List of Sales", new string[] { "mytag"}); #line 7 this.ScenarioSetup(scenarioInfo); @@ -113,7 +113,7 @@ public virtual void ViewAListOfSales() "3", "45.00"}); #line 9 - testRunner.Then("the following sales list should be displayed:", ((string)(null)), table1, "Then "); + testRunner.Then("the following sales list should be returned:", ((string)(null)), table1, "Then "); #line hidden this.ScenarioCleanup(); } diff --git a/Specification/Sales/ViewSalesList/ViewSalesListModel.cs b/Specification/Sales/GetSalesList/GetSalesListModel.cs similarity index 81% rename from Specification/Sales/ViewSalesList/ViewSalesListModel.cs rename to Specification/Sales/GetSalesList/GetSalesListModel.cs index c5780fb..8f76073 100644 --- a/Specification/Sales/ViewSalesList/ViewSalesListModel.cs +++ b/Specification/Sales/GetSalesList/GetSalesListModel.cs @@ -2,9 +2,9 @@ using System.Collections.Generic; using System.Linq; -namespace CleanArchitecture.Specification.Sales.ViewSalesList +namespace CleanArchitecture.Specification.Sales.GetSalesList { - public class ViewSalesListModel + public class GetSalesListModel { public int Id { get; set; } diff --git a/Specification/Sales/ViewSalesList/ViewSalesListSteps.cs b/Specification/Sales/GetSalesList/GetSalesListSteps.cs similarity index 73% rename from Specification/Sales/ViewSalesList/ViewSalesListSteps.cs rename to Specification/Sales/GetSalesList/GetSalesListSteps.cs index fcbaecf..50dfa25 100644 --- a/Specification/Sales/ViewSalesList/ViewSalesListSteps.cs +++ b/Specification/Sales/GetSalesList/GetSalesListSteps.cs @@ -7,31 +7,32 @@ using TechTalk.SpecFlow; using TechTalk.SpecFlow.Assist; -namespace CleanArchitecture.Specification.Sales.ViewSalesList +namespace CleanArchitecture.Specification.Sales.GetSalesList { [Binding] - public class ViewSalesListSteps + public class GetSalesListSteps { - private readonly AppContext _appContext; + private readonly AppContext _context; private List _results; - public ViewSalesListSteps(AppContext appContext) + public GetSalesListSteps(AppContext context) { - _appContext = appContext; + _context = context; } [When(@"I request a list of sales")] public void WhenIRequestAListOfSales() { - var query = _appContext.Container.GetInstance(); + var query = _context.Container + .GetInstance(); _results = query.Execute(); } - [Then(@"the following sales list should be displayed:")] - public void ThenTheFollowingSalesShouldBeDisplayed(Table table) + [Then(@"the following sales list should be returned:")] + public void ThenTheFollowingSalesShouldBeReturned(Table table) { - var models = table.CreateSet().ToList(); + var models = table.CreateSet().ToList(); for (var i = 0; i < models.Count(); i++) { diff --git a/Specification/Specification.csproj b/Specification/Specification.csproj index 598a1b5..b86558c 100644 --- a/Specification/Specification.csproj +++ b/Specification/Specification.csproj @@ -99,6 +99,24 @@ + + True + True + GetCustomersList.feature + + + + True + True + GetEmployeesList.feature + + + + + True + True + GetProductsList.feature + True @@ -109,35 +127,47 @@ - - + + True True - ViewSaleDetails.feature + GetSaleDetails.feature - - + + True True - ViewSalesList.feature + GetSalesList.feature - - + + + + SpecFlowSingleFileGenerator + GetCustomersList.feature.cs + + + SpecFlowSingleFileGenerator + GetEmployeesList.feature.cs + + + SpecFlowSingleFileGenerator + GetProductsList.feature.cs + SpecFlowSingleFileGenerator CreateASale.feature.cs - + SpecFlowSingleFileGenerator - ViewSaleDetails.feature.cs + GetSaleDetails.feature.cs - + SpecFlowSingleFileGenerator - ViewSalesList.feature.cs + GetSalesList.feature.cs @@ -157,11 +187,7 @@ Domain - - - - - +