ScientificReport
ReviewRepositoryTests.cs
Go to the documentation of this file.
1 using System.Collections.Generic;
2 using System.Linq;
3 using Moq;
7 using Xunit;
8 
9 namespace ScientificReport.Test.RepositoriesTests
10 {
11  public class ReviewRepositoryTests
12  {
13  private static readonly IEnumerable<Review> TestReviews = new[]
14  {
15  TestData.Review1,
16  TestData.Review2,
17  TestData.Review3
18  };
19 
20  private static Mock<ScientificReportDbContext> GetMockContext()
21  {
22  var mockContext = new Mock<ScientificReportDbContext>();
23  mockContext.Setup(item => item.Reviews).Returns(
24  MockProvider.GetMockSet(TestReviews).Object
25  );
26  return mockContext;
27  }
28 
29  [Fact]
30  public void AllTest()
31  {
32  var repository = new ReviewRepository(GetMockContext().Object);
33  var actual = repository.All();
34  Assert.Equal(TestReviews.Count(), actual.Count());
35  }
36 
37  [Fact]
38  public void AllWhereTest()
39  {
40  var mockContext = GetMockContext();
41  var repository = new ReviewRepository(mockContext.Object);
42  var actual = repository.AllWhere(a => a.Id == mockContext.Object.Reviews.First().Id);
43  Assert.Single(actual);
44  }
45 
46  [Fact]
47  public void GetTest()
48  {
49  var mockContext = GetMockContext();
50  var repository = new ReviewRepository(mockContext.Object);
51  var expected = mockContext.Object.Reviews.First();
52  var actual = repository.Get(o => o.Id == expected.Id);
53  Assert.NotNull(actual);
54  }
55 
56  [Fact]
57  public void GetQueryTest()
58  {
59  var mockContext = GetMockContext();
60  var repository = new ReviewRepository(mockContext.Object);
61  var actual = repository.GetQuery();
62  Assert.Equal(actual.Count(), mockContext.Object.Reviews.Count());
63  }
64 
65  [Fact]
66  public void GetByIdTest()
67  {
68  var mockContext = GetMockContext();
69  var repository = new ReviewRepository(mockContext.Object);
70  var expected = mockContext.Object.Reviews.First();
71  var actual = repository.Get(expected.Id);
72  Assert.NotNull(actual);
73  }
74 
75  [Fact]
76  public void CreateTest()
77  {
78  var mockContext = GetMockContext();
79  var repository = new ReviewRepository(mockContext.Object);
80  Assert.Equal(TestReviews.Count(), mockContext.Object.Reviews.Count());
81  repository.Create(TestData.Review1);
82  Assert.Equal(TestReviews.Count(), repository.All().Count());
83  }
84 
85  [Fact]
86  public void UpdateTest()
87  {
88  var mockContext = GetMockContext();
89  var repository = new ReviewRepository(mockContext.Object);
90  var item = mockContext.Object.Reviews.First();
91  repository.Update(item);
92  Assert.NotNull(repository.Get(item.Id));
93  }
94 
95  [Fact]
96  public void UpdateItemIsNullTest()
97  {
98  var mockContext = GetMockContext();
99  var repository = new ReviewRepository(mockContext.Object);
100  repository.Update(null);
101  }
102 
103  [Fact]
104  public void DeleteTest()
105  {
106  var mockContext = GetMockContext();
107  var repository = new ReviewRepository(mockContext.Object);
108  var item = mockContext.Object.Reviews.First();
109  repository.Delete(item.Id);
110  Assert.Null(mockContext.Object.Reviews.Find(item.Id));
111  }
112  }
113 }
def repository(name)
Definition: generate.py:18