Skip to content

Commit 4088010

Browse files
authored
[MergeController] Add ProducesResponseType attributes, tests (#3844)
1 parent 3c0dd96 commit 4088010

File tree

2 files changed

+60
-4
lines changed

2 files changed

+60
-4
lines changed

Backend.Tests/Controllers/MergeControllerTests.cs

Lines changed: 51 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,31 @@ public void Setup()
4949
}
5050

5151
[Test]
52-
public void BlacklistAddTest()
52+
public void TestMergeWordsNoPermission()
53+
{
54+
_mergeController.ControllerContext.HttpContext = PermissionServiceMock.UnauthorizedHttpContext();
55+
var result = _mergeController.MergeWords("projId", []).Result;
56+
Assert.That(result, Is.InstanceOf<ForbidResult>());
57+
}
58+
59+
[Test]
60+
public void TestUndoMergeNoPermission()
61+
{
62+
_mergeController.ControllerContext.HttpContext = PermissionServiceMock.UnauthorizedHttpContext();
63+
var result = _mergeController.UndoMerge("projId", new()).Result;
64+
Assert.That(result, Is.InstanceOf<ForbidResult>());
65+
}
66+
67+
[Test]
68+
public void TestBlacklistAddNoPermission()
69+
{
70+
_mergeController.ControllerContext.HttpContext = PermissionServiceMock.UnauthorizedHttpContext();
71+
var result = _mergeController.BlacklistAdd("projId", []).Result;
72+
Assert.That(result, Is.InstanceOf<ForbidResult>());
73+
}
74+
75+
[Test]
76+
public void TestBlacklistAdd()
5377
{
5478
var wordIdsA = new List<string> { "1", "2" };
5579
var wordIdsB = new List<string> { "3", "1" };
@@ -72,7 +96,15 @@ public void BlacklistAddTest()
7296
}
7397

7498
[Test]
75-
public void GraylistAddTest()
99+
public void TestGraylistAddNoPermission()
100+
{
101+
_mergeController.ControllerContext.HttpContext = PermissionServiceMock.UnauthorizedHttpContext();
102+
var result = _mergeController.GraylistAdd("projId", []).Result;
103+
Assert.That(result, Is.InstanceOf<ForbidResult>());
104+
}
105+
106+
[Test]
107+
public void TestGraylistAdd()
76108
{
77109
var wordIdsA = new List<string> { "1", "2" };
78110
var wordIdsB = new List<string> { "3", "1" };
@@ -95,15 +127,30 @@ public void GraylistAddTest()
95127
}
96128

97129
[Test]
98-
public void HasGraylistEntriesNoPermissionTest()
130+
public void TestFindPotentialDuplicatesNoPermission()
131+
{
132+
_mergeController.ControllerContext.HttpContext = PermissionServiceMock.UnauthorizedHttpContext();
133+
var result = _mergeController.FindPotentialDuplicates("projId", 2, 1).Result;
134+
Assert.That(result, Is.InstanceOf<ForbidResult>());
135+
}
136+
137+
[Test]
138+
public void TestRetrievePotentialDuplicatesNoDuplicates()
139+
{
140+
var result = _mergeController.RetrievePotentialDuplicates();
141+
Assert.That(result, Is.InstanceOf<BadRequestResult>());
142+
}
143+
144+
[Test]
145+
public void TestHasGraylistEntriesNoPermission()
99146
{
100147
_mergeController.ControllerContext.HttpContext = PermissionServiceMock.UnauthorizedHttpContext();
101148
var result = _mergeController.HasGraylistEntries("projId", "userId").Result;
102149
Assert.That(result, Is.InstanceOf<ForbidResult>());
103150
}
104151

105152
[Test]
106-
public void GetGraylistEntriesNoPermissionTest()
153+
public void TestGetGraylistEntriesNoPermission()
107154
{
108155
_mergeController.ControllerContext.HttpContext = PermissionServiceMock.UnauthorizedHttpContext();
109156
var result = _mergeController.GetGraylistEntries("projId", 3, "userId").Result;

Backend/Controllers/MergeController.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ public MergeController(
3333
/// <returns> List of ids of new words </returns>
3434
[HttpPut(Name = "MergeWords")]
3535
[ProducesResponseType(StatusCodes.Status200OK, Type = typeof(List<string>))]
36+
[ProducesResponseType(StatusCodes.Status400BadRequest, Type = typeof(string))]
37+
[ProducesResponseType(StatusCodes.Status403Forbidden)]
3638
public async Task<IActionResult> MergeWords(
3739
string projectId, [FromBody, BindRequired] List<MergeWords> mergeWordsList)
3840
{
@@ -58,6 +60,7 @@ public async Task<IActionResult> MergeWords(
5860
/// <returns> True if merge was successfully undone </returns>
5961
[HttpPut("undo", Name = "UndoMerge")]
6062
[ProducesResponseType(StatusCodes.Status200OK, Type = typeof(bool))]
63+
[ProducesResponseType(StatusCodes.Status403Forbidden)]
6164
public async Task<IActionResult> UndoMerge(string projectId, [FromBody, BindRequired] MergeUndoIds merge)
6265
{
6366
if (!await _permissionService.HasProjectPermission(
@@ -75,6 +78,7 @@ public async Task<IActionResult> UndoMerge(string projectId, [FromBody, BindRequ
7578
/// <returns> List of word ids added to blacklist. </returns>
7679
[HttpPut("blacklist/add", Name = "BlacklistAdd")]
7780
[ProducesResponseType(StatusCodes.Status200OK, Type = typeof(List<string>))]
81+
[ProducesResponseType(StatusCodes.Status403Forbidden)]
7882
public async Task<IActionResult> BlacklistAdd(string projectId, [FromBody, BindRequired] List<string> wordIds)
7983
{
8084
if (!await _permissionService.HasProjectPermission(
@@ -92,6 +96,7 @@ public async Task<IActionResult> BlacklistAdd(string projectId, [FromBody, BindR
9296
/// <returns> List of word ids added to graylist. </returns>
9397
[HttpPut("graylist/add", Name = "graylistAdd")]
9498
[ProducesResponseType(StatusCodes.Status200OK, Type = typeof(List<string>))]
99+
[ProducesResponseType(StatusCodes.Status403Forbidden)]
95100
public async Task<IActionResult> GraylistAdd(string projectId, [FromBody, BindRequired] List<string> wordIds)
96101
{
97102
if (!await _permissionService.HasProjectPermission(
@@ -111,6 +116,7 @@ public async Task<IActionResult> GraylistAdd(string projectId, [FromBody, BindRe
111116
/// <param name="maxLists"> Max number of lists of potential duplicates. </param>
112117
[HttpGet("finddups/{maxInList:int}/{maxLists:int}", Name = "FindPotentialDuplicates")]
113118
[ProducesResponseType(StatusCodes.Status200OK)]
119+
[ProducesResponseType(StatusCodes.Status403Forbidden)]
114120
public async Task<IActionResult> FindPotentialDuplicates(string projectId, int maxInList, int maxLists)
115121
{
116122
if (!await _permissionService.HasProjectPermission(
@@ -145,6 +151,7 @@ internal async Task<bool> GetDuplicatesThenSignal(string projectId, int maxInLis
145151
/// <returns> List of Lists of <see cref="Word"/>s, each sublist a set of potential duplicates. </returns>
146152
[HttpGet("retrievedups", Name = "RetrievePotentialDuplicates")]
147153
[ProducesResponseType(StatusCodes.Status200OK, Type = typeof(List<List<Word>>))]
154+
[ProducesResponseType(StatusCodes.Status400BadRequest)]
148155
public IActionResult RetrievePotentialDuplicates()
149156
{
150157
var userId = _permissionService.GetUserId(HttpContext);
@@ -157,6 +164,7 @@ public IActionResult RetrievePotentialDuplicates()
157164
/// <param name="userId"> Id of user whose merge graylist is to be used. </param>
158165
[HttpGet("hasgraylist/{userId}", Name = "HasGraylistEntries")]
159166
[ProducesResponseType(StatusCodes.Status200OK, Type = typeof(bool))]
167+
[ProducesResponseType(StatusCodes.Status403Forbidden)]
160168
public async Task<IActionResult> HasGraylistEntries(string projectId, string userId)
161169
{
162170
if (!await _permissionService.HasProjectPermission(
@@ -174,6 +182,7 @@ public async Task<IActionResult> HasGraylistEntries(string projectId, string use
174182
/// <returns> List of Lists of <see cref="Word"/>s. </returns>
175183
[HttpGet("getgraylist/{maxLists}/{userId}", Name = "GetGraylistEntries")]
176184
[ProducesResponseType(StatusCodes.Status200OK, Type = typeof(List<List<Word>>))]
185+
[ProducesResponseType(StatusCodes.Status403Forbidden)]
177186
public async Task<IActionResult> GetGraylistEntries(
178187
string projectId, int maxLists, string userId)
179188
{

0 commit comments

Comments
 (0)