ScientificReport
ScientificInternshipServiceTests.cs
Go to the documentation of this file.
1 using System.Collections.Generic;
2 using System.Linq;
3 using Microsoft.EntityFrameworkCore;
4 using Moq;
9 using Xunit;
10 
11 namespace ScientificReport.Test.ServicesTests
12 {
14  {
15  private readonly Mock<DbSet<ScientificInternship>> _mockDbSet = MockProvider.GetMockSet(GetTestData().AsQueryable());
16 
17  private static IEnumerable<ScientificInternship> GetTestData()
18  {
19  return new[]
20  {
21  TestData.ScientificInternship1,
22  TestData.ScientificInternship2
23  };
24  }
25 
26  private Mock<ScientificReportDbContext> GetMockContext()
27  {
28  var mockContext = new Mock<ScientificReportDbContext>();
29  mockContext.Setup(item => item.ScientificInternships).Returns(_mockDbSet.Object);
30  return mockContext;
31  }
32 
33  [Fact]
34  public void GetAllTest()
35  {
36  var list = GetTestData().AsQueryable();
37 
38  var mockContext = new Mock<ScientificReportDbContext>();
39  mockContext.Setup(item => item.ScientificInternships).Returns(MockProvider.GetMockSet(list).Object);
40  var service = new ScientificInternshipService(mockContext.Object);
41 
42  var actual = service.GetAll();
43 
44  Assert.Equal(list.Count(), actual.Count());
45  }
46 
47  [Fact]
48  public void GetAllWhereTest()
49  {
50  var service = new ScientificInternshipService(GetMockContext().Object);
51  var actual = service.GetAllWhere(u => u.Id.Equals(TestData.ScientificInternship1.Id));
52  Assert.Single(actual);
53  }
54 
55  [Fact]
56  public void GetByIdTest()
57  {
58  var expected = GetTestData().First();
59  var service = new ScientificInternshipService(GetMockContext().Object);
60 
61  var actual = service.GetById(expected.Id);
62 
63  Assert.NotNull(actual);
64  Assert.Equal(expected.Id, actual.Id);
65  }
66 
67  [Fact]
68  public void CreateItemTest()
69  {
70  var service = new ScientificInternshipService(GetMockContext().Object);
71 
72  var expected = TestData.ScientificInternship3;
73  service.CreateItem(new ScientificInternshipModel(expected));
74 
75  _mockDbSet.Verify(m => m.Add(It.IsAny<ScientificInternship>()), Times.Once);
76  }
77 
78  [Fact]
79  public void UpdateItemTest()
80  {
81  var service = new ScientificInternshipService(GetMockContext().Object);
82 
83  var expected = GetTestData().First();
84  expected.Contents = TestData.ScientificInternship3.Contents;
85  service.UpdateItem(new ScientificInternshipEditModel(expected));
86 
87  _mockDbSet.Verify(m => m.Update(expected), Times.Once);
88  }
89 
90  [Fact]
91  public void DeleteItemTest()
92  {
93  var mockContext = GetMockContext();
94  var service = new ScientificInternshipService(mockContext.Object);
95 
96  var item = mockContext.Object.ScientificInternships.First();
97 
98  Assert.True(service.Exists(item.Id));
99 
100  service.DeleteById(item.Id);
101 
102  Assert.False(service.Exists(item.Id));
103  }
104 
105  [Fact]
106  public void ExistsTest()
107  {
108  var service = new ScientificInternshipService(GetMockContext().Object);
109 
110  var item = GetTestData().First();
111  var exists = service.Exists(item.Id);
112 
113  Assert.True(exists);
114  }
115 
116  [Fact]
117  public void DoesNotExistTest()
118  {
119  var service = new ScientificInternshipService(GetMockContext().Object);
120 
121  var item = TestData.ScientificInternship3;
122  var exists = service.Exists(item.Id);
123 
124  Assert.False(exists);
125  }
126 
127  [Fact]
128  public void GetUsersTest()
129  {
130  var scientificInternship = GetTestData().First();
131 
132  var service = new Mock<ScientificInternshipService>(GetMockContext().Object);
133 
134  service.Setup(item => item.GetUsers(scientificInternship.Id));
135  service.Object.GetUsers(scientificInternship.Id);
136  service.Verify(item => item.GetUsers(scientificInternship.Id));
137  }
138  }
139 }