ScientificReport
MembershipServiceTests.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<Membership>> _mockDbSet = MockProvider.GetMockSet(GetTestData().AsQueryable());
16 
17  private static IEnumerable<Membership> GetTestData()
18  {
19  return new[]
20  {
21  TestData.Membership1,
22  TestData.Membership2
23  };
24  }
25 
26  private Mock<ScientificReportDbContext> GetMockContext()
27  {
28  var mockContext = new Mock<ScientificReportDbContext>();
29  mockContext.Setup(item => item.Memberships).Returns(_mockDbSet.Object);
30 
31  var userProfileSet = MockProvider.GetMockSet(new []{TestData.User1}.AsQueryable());
32  var departmentSet = MockProvider.GetMockSet(new []{TestData.Department1}.AsQueryable());
33 
34  mockContext.Setup(item => item.UserProfiles).Returns(userProfileSet.Object);
35  mockContext.Setup(item => item.Departments).Returns(departmentSet.Object);
36 
37  return mockContext;
38  }
39 
40  [Fact]
41  public void GetAllTest()
42  {
43  var list = GetTestData().AsQueryable();
44 
45  var mockContext = new Mock<ScientificReportDbContext>();
46  mockContext.Setup(item => item.Memberships).Returns(MockProvider.GetMockSet(list).Object);
47  var service = new MembershipService(mockContext.Object);
48 
49  var actual = service.GetAll();
50 
51  Assert.Equal(list.Count(), actual.Count());
52  }
53 
54  [Fact]
55  public void GetAllWhereTest()
56  {
57  var service = new MembershipService(GetMockContext().Object);
58  var actual = service.GetAllWhere(u => u.Id.Equals(TestData.Membership1.Id));
59  Assert.Single(actual);
60  }
61 
62  [Fact]
63  public void GetByIdTest()
64  {
65  var expected = GetTestData().First();
66  var service = new MembershipService(GetMockContext().Object);
67 
68  var actual = service.GetById(expected.Id);
69 
70  Assert.NotNull(actual);
71  Assert.Equal(expected.Id, actual.Id);
72  }
73 
74  [Fact]
75  public void CreateItemTest()
76  {
77  var service = new MembershipService(GetMockContext().Object);
78 
79  var expected = TestData.Membership3;
80  service.CreateItem(new MembershipModel(expected));
81 
82  _mockDbSet.Verify(m => m.Add(It.IsAny<Membership>()), Times.Once);
83  }
84 
85  [Fact]
86  public void UpdateItemTest()
87  {
88  var service = new MembershipService(GetMockContext().Object);
89 
90  var expected = GetTestData().First();
91  expected.Type = TestData.Membership3.Type;
92  service.UpdateItem(new MembershipEditModel(expected));
93 
94  _mockDbSet.Verify(m => m.Update(expected), Times.Once);
95  }
96 
97  [Fact]
98  public void DeleteItemTest()
99  {
100  var mockContext = GetMockContext();
101  var service = new MembershipService(mockContext.Object);
102 
103  var item = mockContext.Object.Memberships.First();
104 
105  Assert.True(service.Exists(item.Id));
106 
107  service.DeleteById(item.Id);
108 
109  Assert.False(service.Exists(item.Id));
110  }
111 
112  [Fact]
113  public void ExistsTest()
114  {
115  var service = new MembershipService(GetMockContext().Object);
116 
117  var item = GetTestData().First();
118  var exists = service.Exists(item.Id);
119 
120  Assert.True(exists);
121  }
122 
123  [Fact]
124  public void DoesNotExistTest()
125  {
126  var service = new MembershipService(GetMockContext().Object);
127 
128  var item = TestData.Membership3;
129  var exists = service.Exists(item.Id);
130 
131  Assert.False(exists);
132  }
133  }
134 }