1- using System ;
2- using Microsoft . VisualStudio . TestTools . UnitTesting ;
3- using eCommerce . DomainModelLayer . Customers ;
1+ using Microsoft . VisualStudio . TestTools . UnitTesting ;
42using Moq ;
53using FluentAssertions ;
6- using eCommerce . DomainModelLayer . Purchases ;
74using System . Collections . Generic ;
85using System . Collections . ObjectModel ;
9- using FluentAssertions . Equivalency ;
10- using eCommerce . Helpers . Domain ;
116using eCommerce . DomainModelLayer . Carts ;
127using 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