Skip to content

Commit 335bdb2

Browse files
committed
Refac for "Top 4 mistakes that you will make" arti
Made aggregate roots smaller, made object graph smaller and pushed checkout func in to a domain service.
1 parent 4d94f14 commit 335bdb2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+601
-495
lines changed

eCommerce.Tests/DomainModelLayer/CartTest.cs

Lines changed: 10 additions & 167 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,8 @@
1-
using System;
2-
using Microsoft.VisualStudio.TestTools.UnitTesting;
3-
using eCommerce.DomainModelLayer.Customers;
1+
using Microsoft.VisualStudio.TestTools.UnitTesting;
42
using Moq;
53
using FluentAssertions;
6-
using eCommerce.DomainModelLayer.Purchases;
74
using System.Collections.Generic;
85
using System.Collections.ObjectModel;
9-
using FluentAssertions.Equivalency;
10-
using eCommerce.Helpers.Domain;
116
using eCommerce.DomainModelLayer.Carts;
127
using eCommerce.DomainModelLayer.Products;
138

@@ -17,128 +12,14 @@ namespace eCommerce.Tests.DomainModelLayer
1712
public class CartTest
1813
{
1914
[TestMethod, TestCategory("Unit")]
20-
public void IsPurchaseReady_CartEmpty_ReturnsNull()
15+
public void TotalCost_TwoProductsOneQuantitySummedUp_ReturnsCorrectSum()
2116
{
22-
Nullable<ProductIssues> expected = null;
23-
24-
Mock<Cart> cart = new Mock<Cart>();
25-
cart.CallBase = true;
26-
cart.SetupGet(x => x.Products).Returns(new ReadOnlyCollection<CartProduct>(new List<CartProduct>()));
27-
28-
Nullable<ProductIssues> actual = cart.Object.IsPurchaseReady();
29-
30-
actual.ShouldBeEquivalentTo(expected);
31-
}
32-
33-
[TestMethod, TestCategory("Unit")]
34-
public void IsPurchaseReady_CartReady_ReturnsNull()
35-
{
36-
Nullable<ProductIssues> expected = null;
37-
38-
Mock<Product> product = new Mock<Product>();
39-
product.SetupGet(x => x.Active).Returns(true);
40-
product.SetupGet(x => x.Id).Returns(Guid.Empty);
41-
product.SetupGet(x => x.Quantity).Returns(1);
42-
product.SetupGet(x => x.Returns).Returns(new ReadOnlyCollection<Return>(new List<Return>()));
43-
44-
Mock<CartProduct> cartProduct = new Mock<CartProduct>();
45-
cartProduct.CallBase = true;
46-
cartProduct.SetupGet(x => x.Quantity).Returns(1);
47-
cartProduct.SetupGet(x => x.Product).Returns(product.Object);
48-
49-
Mock<Cart> cart = new Mock<Cart>();
50-
cart.CallBase = true;
51-
cart.SetupGet(x => x.Products)
52-
.Returns(new ReadOnlyCollection<CartProduct>(new List<CartProduct>()
53-
{
54-
cartProduct.Object
55-
}));
56-
57-
Nullable<ProductIssues> actual = cart.Object.IsPurchaseReady();
58-
59-
actual.ShouldBeEquivalentTo(expected);
60-
}
61-
62-
[TestMethod, TestCategory("Unit")]
63-
public void IsPurchaseReady_ProductNotInStock_ReturnsNotInStock()
64-
{
65-
Nullable<ProductIssues> expected = ProductIssues.NotInStock;
66-
67-
Mock<Product> product = new Mock<Product>();
68-
product.SetupGet(x => x.Active).Returns(true);
69-
product.SetupGet(x => x.Id).Returns(Guid.Empty);
70-
product.SetupGet(x => x.Quantity).Returns(0);
71-
product.SetupGet(x => x.Returns).Returns(new ReadOnlyCollection<Return>(new List<Return>()));
17+
decimal expected = 100;
7218

7319
Mock<CartProduct> cartProduct = new Mock<CartProduct>();
7420
cartProduct.CallBase = true;
7521
cartProduct.SetupGet(x => x.Quantity).Returns(1);
76-
cartProduct.SetupGet(x => x.Product).Returns(product.Object);
77-
78-
Mock<Cart> cart = new Mock<Cart>();
79-
cart.CallBase = true;
80-
cart.SetupGet(x => x.Products)
81-
.Returns(new ReadOnlyCollection<CartProduct>(new List<CartProduct>()
82-
{
83-
cartProduct.Object
84-
}));
85-
86-
Nullable<ProductIssues> actual = cart.Object.IsPurchaseReady();
87-
88-
actual.ShouldBeEquivalentTo(expected);
89-
}
90-
91-
[TestMethod, TestCategory("Unit")]
92-
public void IsPurchaseReady_ProductIsFaulty_ReturnsIsFaulty()
93-
{
94-
Nullable<ProductIssues> expected = ProductIssues.IsFaulty;
95-
96-
Mock<Return> productReturn = new Mock<Return>();
97-
productReturn.SetupGet(x => x.Reason).Returns(ReturnReason.Faulty);
98-
99-
Mock<Product> product = new Mock<Product>();
100-
product.SetupGet(x => x.Active).Returns(true);
101-
product.SetupGet(x => x.Id).Returns(Guid.Empty);
102-
product.SetupGet(x => x.Quantity).Returns(1);
103-
product.SetupGet(x => x.Returns).Returns(new ReadOnlyCollection<Return>(new List<Return>()
104-
{
105-
productReturn.Object
106-
}));
107-
108-
Mock<CartProduct> cartProduct = new Mock<CartProduct>();
109-
cartProduct.CallBase = true;
110-
cartProduct.SetupGet(x => x.Quantity).Returns(1);
111-
cartProduct.SetupGet(x => x.Product).Returns(product.Object);
112-
113-
Mock<Cart> cart = new Mock<Cart>();
114-
cart.CallBase = true;
115-
cart.SetupGet(x => x.Products)
116-
.Returns(new ReadOnlyCollection<CartProduct>(new List<CartProduct>()
117-
{
118-
cartProduct.Object
119-
}));
120-
121-
Nullable<ProductIssues> actual = cart.Object.IsPurchaseReady();
122-
123-
actual.ShouldBeEquivalentTo(expected);
124-
}
125-
126-
[TestMethod, TestCategory("Unit")]
127-
public void TotalCost_TwoSingleProductsSummedUp_ReturnsCorrectSum()
128-
{
129-
decimal expected = 2;
130-
131-
Mock<Product> product = new Mock<Product>();
132-
product.SetupGet(x => x.Active).Returns(true);
133-
product.SetupGet(x => x.Quantity).Returns(1);
134-
product.SetupGet(x => x.Cost).Returns(1);
135-
product.SetupGet(x => x.Returns)
136-
.Returns(new ReadOnlyCollection<Return>(new List<Return>()));
137-
138-
Mock<CartProduct> cartProduct = new Mock<CartProduct>();
139-
cartProduct.CallBase = true;
140-
cartProduct.SetupGet(x => x.Quantity).Returns(1);
141-
cartProduct.SetupGet(x => x.Product).Returns(product.Object);
22+
cartProduct.SetupGet(x => x.Cost).Returns(50);
14223

14324
Mock<Cart> cart = new Mock<Cart>();
14425
cart.CallBase = true;
@@ -155,52 +36,14 @@ public void TotalCost_TwoSingleProductsSummedUp_ReturnsCorrectSum()
15536
}
15637

15738
[TestMethod, TestCategory("Unit")]
158-
public void TotalCost_TwoSingleProductsTotalCostSummedUp_ReturnsCorrectTotalCostSum()
39+
public void TotalCost_TwoProductsTwoQuantitiesSummedUp_ReturnsCorrectTotalCostSum()
15940
{
160-
decimal expected = 4;
161-
162-
Mock<Product> product = new Mock<Product>();
163-
product.SetupGet(x => x.Active).Returns(true);
164-
product.SetupGet(x => x.Quantity).Returns(1);
165-
product.SetupGet(x => x.Cost).Returns(1);
166-
product.SetupGet(x => x.Returns)
167-
.Returns(new ReadOnlyCollection<Return>(new List<Return>()));
168-
169-
Mock<CartProduct> cartProduct = new Mock<CartProduct>();
170-
cartProduct.CallBase = true;
171-
cartProduct.SetupGet(x => x.Quantity).Returns(2);
172-
cartProduct.SetupGet(x => x.Product).Returns(product.Object);
173-
174-
Mock<Cart> cart = new Mock<Cart>();
175-
cart.CallBase = true;
176-
cart.SetupGet(x => x.Products)
177-
.Returns(new ReadOnlyCollection<CartProduct>(new List<CartProduct>()
178-
{
179-
cartProduct.Object,
180-
cartProduct.Object
181-
}));
182-
183-
decimal actual = cart.Object.TotalCost;
184-
185-
actual.ShouldBeEquivalentTo(expected);
186-
}
187-
188-
[TestMethod, TestCategory("Unit")]
189-
public void TotalCost_TwoDoubleProductsTotalCostSummedUp_ReturnsCorrectTotalCostSum()
190-
{
191-
decimal expected = 4;
192-
193-
Mock<Product> product = new Mock<Product>();
194-
product.SetupGet(x => x.Active).Returns(true);
195-
product.SetupGet(x => x.Quantity).Returns(1);
196-
product.SetupGet(x => x.Cost).Returns(1);
197-
product.SetupGet(x => x.Returns)
198-
.Returns(new ReadOnlyCollection<Return>(new List<Return>()));
41+
decimal expected = 200;
19942

20043
Mock<CartProduct> cartProduct = new Mock<CartProduct>();
20144
cartProduct.CallBase = true;
20245
cartProduct.SetupGet(x => x.Quantity).Returns(2);
203-
cartProduct.SetupGet(x => x.Product).Returns(product.Object);
46+
cartProduct.SetupGet(x => x.Cost).Returns(50);
20447

20548
Mock<Cart> cart = new Mock<Cart>();
20649
cart.CallBase = true;
@@ -219,13 +62,13 @@ public void TotalCost_TwoDoubleProductsTotalCostSummedUp_ReturnsCorrectTotalCost
21962
[TestMethod, TestCategory("Unit")]
22063
public void TotalCost_TwoSingleProductsTaxSummedUp_ReturnsCorrectTotalTaxSum()
22164
{
222-
decimal expected = 2;
65+
decimal expected = 20;
22366

22467
Mock<CartProduct> cartProduct = new Mock<CartProduct>();
22568
cartProduct.CallBase = true;
22669
cartProduct.SetupGet(x => x.Quantity).Returns(1);
227-
cartProduct.SetupGet(x => x.Tax).Returns(1);
228-
cartProduct.SetupGet(x => x.Product).Returns(new Product());
70+
cartProduct.SetupGet(x => x.Tax).Returns(10);
71+
cartProduct.SetupGet(x => x.Cost).Returns(100);
22972

23073
Mock<Cart> cart = new Mock<Cart>();
23174
cart.CallBase = true;

0 commit comments

Comments
 (0)