ScientificReport
ConferenceServiceTests.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<Conference>> _mockDbSet = MockProvider.GetMockSet(GetTestData().AsQueryable());
16 
17  private static IEnumerable<Conference> GetTestData()
18  {
19  return new[]
20  {
21  TestData.Conference1,
22  TestData.Conference2
23  };
24  }
25 
26  private Mock<ScientificReportDbContext> GetMockContext()
27  {
28  var mockContext = new Mock<ScientificReportDbContext>();
29  mockContext.Setup(item => item.Conferences).Returns(_mockDbSet.Object);
30 
31  TestData.ReportThesis1.UserProfilesReportTheses = new[] {new UserProfilesReportThesis
32  {
33  ReportThesis = TestData.ReportThesis1,
34  UserProfile = TestData.User1
35  }};
36  TestData.ReportThesis2.UserProfilesReportTheses = new[] {new UserProfilesReportThesis
37  {
38  ReportThesis = TestData.ReportThesis2,
39  UserProfile = TestData.User1
40  }};
41  TestData.ReportThesis3.UserProfilesReportTheses = new[] {new UserProfilesReportThesis
42  {
43  ReportThesis = TestData.ReportThesis3,
44  UserProfile = TestData.User1
45  }};
46 
47  var userProfileSet = MockProvider.GetMockSet(new []{TestData.User1}.AsQueryable());
48  var departmentSet = MockProvider.GetMockSet(new []{TestData.Department1}.AsQueryable());
49  var conferenceSet = MockProvider.GetMockSet(new []{TestData.Conference1}.AsQueryable());
50  var reportThesesSet = MockProvider.GetMockSet(new []{TestData.ReportThesis1, TestData.ReportThesis2, TestData.ReportThesis3}.AsQueryable());
51 
52  mockContext.Setup(item => item.UserProfiles).Returns(userProfileSet.Object);
53  mockContext.Setup(item => item.Departments).Returns(departmentSet.Object);
54  mockContext.Setup(item => item.Conferences).Returns(conferenceSet.Object);
55  mockContext.Setup(item => item.ReportTheses).Returns(reportThesesSet.Object);
56 
57  return mockContext;
58  }
59 
60  [Fact]
61  public void GetAllTest()
62  {
63  var list = GetTestData().AsQueryable();
64 
65  var mockContext = new Mock<ScientificReportDbContext>();
66  mockContext.Setup(item => item.Conferences).Returns(MockProvider.GetMockSet(list).Object);
67  var service = new ConferenceService(mockContext.Object);
68 
69  var actual = service.GetAll();
70 
71  Assert.Equal(list.Count(), actual.Count());
72  }
73 
74  [Fact]
75  public void GetAllWhereTest()
76  {
77  var service = new ConferenceService(GetMockContext().Object);
78  var actual = service.GetAllWhere(u => u.Id.Equals(TestData.Conference1.Id));
79  Assert.Single(actual);
80  }
81 
82  [Fact]
83  public void GetByIdTest()
84  {
85  var expected = GetTestData().First();
86  var service = new ConferenceService(GetMockContext().Object);
87 
88  var actual = service.GetById(expected.Id);
89 
90  Assert.NotNull(actual);
91  Assert.Equal(expected.Id, actual.Id);
92  }
93 
94  [Fact]
95  public void CreateItemTest()
96  {
97  var mockContext = GetMockContext();
98  var service = new ConferenceService(mockContext.Object);
99 
100  var expected = TestData.Conference3;
101  service.CreateItem(expected);
102  }
103 
104  [Fact]
105  public void UpdateItemTest()
106  {
107  var service = new ConferenceService(GetMockContext().Object);
108 
109  var expected = GetTestData().Last();
110  expected.Topic = TestData.Conference3.Topic;
111  service.UpdateItem(expected);
112  }
113 
114  [Fact]
115  public void DeleteItemTest()
116  {
117  var mockContext = GetMockContext();
118  var service = new ConferenceService(mockContext.Object);
119 
120  var item = mockContext.Object.Conferences.First();
121 
122  Assert.True(service.Exists(item.Id));
123 
124  service.DeleteById(item.Id);
125 
126  Assert.False(service.Exists(item.Id));
127  }
128 
129  [Fact]
130  public void ExistsTest()
131  {
132  var mockContext = GetMockContext();
133  var service = new ConferenceService(mockContext.Object);
134 
135  var item = mockContext.Object.Conferences.First();
136  var exists = service.Exists(item.Id);
137 
138  Assert.True(exists);
139  }
140 
141  [Fact]
142  public void DoesNotExistTest()
143  {
144  var service = new ConferenceService(GetMockContext().Object);
145 
146  var item = TestData.Conference3;
147  var exists = service.Exists(item.Id);
148 
149  Assert.False(exists);
150  }
151 
152  [Fact]
153  public void GetReportThesesTest()
154  {
155  var mockContext = GetMockContext();
156  var service = new Mock<ConferenceService>(mockContext.Object);
157 
158  var conference = mockContext.Object.Conferences.First();
159 
160  var actual = service.Object.GetReportTheses(conference.Id);
161 
162  Assert.NotNull(actual);
163 
164  service.Verify(it => it.GetReportTheses(conference.Id), Times.Once);
165  }
166 
167  [Fact]
168  public void GetParticipatorsTest()
169  {
170  var mockContext = GetMockContext();
171  var service = new Mock<ConferenceService>(mockContext.Object);
172 
173  var conference = mockContext.Object.Conferences.First();
174 
175  var actual = service.Object.GetParticipators(conference.Id);
176 
177  Assert.NotNull(actual);
178 
179  service.Verify(it => it.GetParticipators(conference.Id), Times.Once);
180  }
181  }
182 }
virtual ICollection< UserProfilesReportThesis > UserProfilesReportTheses
Definition: UserProfile.cs:48