1
+ using System . Collections . Generic ;
2
+ using Model ;
3
+ using Moq ;
4
+ using Repository ;
5
+ using Services ;
6
+ using Xunit ;
7
+
8
+ namespace Tests . Unit . Service
9
+ {
10
+ public class PortfolioRepositoryTest
11
+ {
12
+ [ Fact ]
13
+ public void Create_CallsRepository ( )
14
+ {
15
+ // arrange
16
+ var portfolioToBeAdded = new Portfolio ( "Foo" , "Bar" , Currency . Eur , - 1 ) ;
17
+ var repositoryMock = new Mock < IPortfolioRepository > ( ) ;
18
+ repositoryMock . Setup ( x => x . Add ( It . Is < Portfolio > ( portfolio => portfolio == portfolioToBeAdded ) ) ) . Returns ( 1 ) ;
19
+ var service = new PortfolioServiceImpl ( repositoryMock . Object ) ;
20
+
21
+ // act
22
+ var portfolio = service . CreatePortfolio ( "Foo" , "Bar" , Currency . Eur ) ;
23
+
24
+ // assert
25
+ Assert . Equal ( portfolioToBeAdded with { Id = 1 } , portfolio ) ;
26
+ }
27
+
28
+ [ Fact ]
29
+ public void Get_CallsRepository ( )
30
+ {
31
+ // arrange
32
+ var portfolioToBeAdded = new Portfolio ( "Foo" , "Bar" , Currency . Eur , 1 ) ;
33
+ var repositoryMock = new Mock < IPortfolioRepository > ( ) ;
34
+ repositoryMock . Setup ( x => x . Get ( It . IsAny < int > ( ) ) ) . Returns ( portfolioToBeAdded ) ;
35
+ var service = new PortfolioServiceImpl ( repositoryMock . Object ) ;
36
+
37
+ // act
38
+ var portfolio = service . GetPortfolio ( 1 ) ;
39
+
40
+ // assert
41
+ Assert . Equal ( portfolioToBeAdded , portfolio ) ;
42
+ }
43
+
44
+ [ Fact ]
45
+ public void GetPortfolios_CallsRepository ( )
46
+ {
47
+ // arrange
48
+ var portfolioList = new List < Portfolio >
49
+ {
50
+ new ( "My new portfolio" , "Lorem ipsum dolor sit amet" , Currency . Czk ) ,
51
+ new ( "My second portfolio" , "Lorem ipsum dolor sit amet" , Currency . Eur ) ,
52
+ new ( "My third portfolio" , "Lorem ipsum dolor sit amet" , Currency . Usd )
53
+ } ;
54
+
55
+ var repositoryMock = new Mock < IPortfolioRepository > ( ) ;
56
+ repositoryMock . Setup ( x => x . GetAll ( ) ) . Returns ( portfolioList ) ;
57
+ var service = new PortfolioServiceImpl ( repositoryMock . Object ) ;
58
+
59
+ // act
60
+ var portfolioListFetched = service . GetPortfolios ( ) ;
61
+
62
+ // assert
63
+ Assert . Equal ( portfolioList , portfolioListFetched ) ;
64
+ }
65
+
66
+ [ Fact ]
67
+ public void Update_CallsRepository ( )
68
+ {
69
+ // arrange
70
+ var portfolioToBeUpdated = new Portfolio ( "Foo" , "Bar" , Currency . Eur , 1 ) ;
71
+ var repositoryMock = new Mock < IPortfolioRepository > ( ) ;
72
+ repositoryMock . Setup ( x => x . Update ( It . IsAny < Portfolio > ( ) ) ) . Returns ( true ) ;
73
+ var service = new PortfolioServiceImpl ( repositoryMock . Object ) ;
74
+
75
+ // act
76
+ var updated = service . UpdatePortfolio ( portfolioToBeUpdated ) ;
77
+
78
+ // assert
79
+ Assert . True ( updated ) ;
80
+ }
81
+
82
+ [ Fact ]
83
+ public void Delete_CallsRepository ( )
84
+ {
85
+ // arrange
86
+ var portfolioToBeUpdated = new Portfolio ( "Foo" , "Bar" , Currency . Eur , 1 ) ;
87
+ var repositoryMock = new Mock < IPortfolioRepository > ( ) ;
88
+ repositoryMock . Setup ( x => x . Delete ( It . IsAny < Portfolio > ( ) ) ) . Returns ( true ) ;
89
+ var service = new PortfolioServiceImpl ( repositoryMock . Object ) ;
90
+
91
+ // act
92
+ var delete = service . DeletePortfolio ( portfolioToBeUpdated ) ;
93
+
94
+ // assert
95
+ Assert . True ( delete ) ;
96
+ }
97
+ }
98
+ }
0 commit comments