Skip to content

Commit 36834c5

Browse files
Add unit tests for Channel Controller - DELETE actions
1 parent 60e5c49 commit 36834c5

File tree

2 files changed

+234
-0
lines changed

2 files changed

+234
-0
lines changed

src/CSharp.UnitTesting/CSharp.UnitTesting.Api.NUnit.Test/Controllers/ChannelControllerTest.cs

+120
Original file line numberDiff line numberDiff line change
@@ -443,5 +443,125 @@ public async Task GivenUpdateBulkAsyncWhenExceptionThrownThenHandlesGracefully()
443443
var result = response as BadRequestResult;
444444
Assert.That(result.StatusCode, Is.EqualTo((int)HttpStatusCode.BadRequest));
445445
}
446+
447+
[Test]
448+
[Property("HttpVerb", "DELETE")]
449+
public async Task GivenDeleteAsyncWhenDataExistThenDeletesData()
450+
{
451+
// Arrange
452+
mockChannelService
453+
.Setup(_ => _.DeleteAsync(It.IsAny<int>()))
454+
.Returns(Task.CompletedTask)
455+
.Verifiable();
456+
457+
// Act
458+
var response = await channelController.DeleteAsync(It.IsAny<int>());
459+
460+
// Assert
461+
mockChannelService.VerifyAll();
462+
Assert.That(response, Is.InstanceOf<NoContentResult>());
463+
var result = response as NoContentResult;
464+
Assert.That(result.StatusCode, Is.EqualTo((int)HttpStatusCode.NoContent));
465+
}
466+
467+
[Test]
468+
[Property("HttpVerb", "DELETE")]
469+
public async Task GivenDeleteAsyncWhenNoDataExistThenHandlesGracefully()
470+
{
471+
// Arrange
472+
mockChannelService
473+
.Setup(_ => _.DeleteAsync(It.IsAny<int>()))
474+
.Throws<ApplicationException>()
475+
.Verifiable();
476+
477+
// Act
478+
var response = await channelController.DeleteAsync(It.IsAny<int>());
479+
480+
// Assert
481+
mockChannelService.VerifyAll();
482+
Assert.That(response, Is.InstanceOf<NotFoundResult>());
483+
var result = response as NotFoundResult;
484+
Assert.That(result.StatusCode, Is.EqualTo((int)HttpStatusCode.NotFound));
485+
}
486+
487+
[Test]
488+
[Property("HttpVerb", "DELETE")]
489+
public async Task GivenDeleteAsyncWhenExceptionThrownThenHandlesGracefully()
490+
{
491+
// Arrange
492+
mockChannelService
493+
.Setup(_ => _.DeleteAsync(It.IsAny<int>()))
494+
.Throws<Exception>()
495+
.Verifiable();
496+
497+
// Act
498+
var response = await channelController.DeleteAsync(It.IsAny<int>());
499+
500+
// Assert
501+
mockChannelService.VerifyAll();
502+
Assert.That(response, Is.InstanceOf<BadRequestResult>());
503+
var result = response as BadRequestResult;
504+
Assert.That(result.StatusCode, Is.EqualTo((int)HttpStatusCode.BadRequest));
505+
}
506+
507+
[Test]
508+
[Property("HttpVerb", "DELETE")]
509+
public async Task GivenDeleteBulkAsyncWhenDataExistThenDeletesData()
510+
{
511+
// Arrange
512+
mockChannelService
513+
.Setup(_ => _.DeleteBulkAsync(It.IsAny<ICollection<int>>()))
514+
.Returns(Task.CompletedTask)
515+
.Verifiable();
516+
517+
// Act
518+
var response = await channelController.DeleteBulkAsync(It.IsAny<ICollection<int>>());
519+
520+
// Assert
521+
mockChannelService.VerifyAll();
522+
Assert.That(response, Is.InstanceOf<NoContentResult>());
523+
var result = response as NoContentResult;
524+
Assert.That(result.StatusCode, Is.EqualTo((int)HttpStatusCode.NoContent));
525+
}
526+
527+
[Test]
528+
[Property("HttpVerb", "DELETE")]
529+
public async Task GivenDeleteBulkAsyncWhenNoDataExistThenHandlesGracefully()
530+
{
531+
// Arrange
532+
mockChannelService
533+
.Setup(_ => _.DeleteBulkAsync(It.IsAny<ICollection<int>>()))
534+
.Throws<ApplicationException>()
535+
.Verifiable();
536+
537+
// Act
538+
var response = await channelController.DeleteBulkAsync(It.IsAny<ICollection<int>>());
539+
540+
// Assert
541+
mockChannelService.VerifyAll();
542+
Assert.That(response, Is.InstanceOf<NotFoundResult>());
543+
var result = response as NotFoundResult;
544+
Assert.That(result.StatusCode, Is.EqualTo((int)HttpStatusCode.NotFound));
545+
}
546+
547+
[Test]
548+
[Property("HttpVerb", "DELETE")]
549+
public async Task GivenDeleteBulkAsyncWhenExceptionThrownThenHandlesGracefully()
550+
{
551+
// Arrange
552+
mockChannelService
553+
.Setup(_ => _.DeleteBulkAsync(It.IsAny<ICollection<int>>()))
554+
.Throws<Exception>()
555+
.Verifiable();
556+
557+
// Act
558+
var response = await channelController.DeleteBulkAsync(It.IsAny<ICollection<int>>());
559+
560+
// Assert
561+
mockChannelService.VerifyAll();
562+
Assert.That(response, Is.InstanceOf<BadRequestResult>());
563+
var result = response as BadRequestResult;
564+
Assert.That(result.StatusCode, Is.EqualTo((int)HttpStatusCode.BadRequest));
565+
}
446566
}
447567
}

src/CSharp.UnitTesting/CSharp.UnitTesting.Api.Xunit.Test/Controllers/ChannelControllerTest.cs

+114
Original file line numberDiff line numberDiff line change
@@ -421,5 +421,119 @@ internal async Task GivenUpdateBulkAsyncWhenExceptionThrownThenHandlesGracefully
421421
var result = Assert.IsType<BadRequestResult>(response);
422422
Assert.Equal((int)HttpStatusCode.BadRequest, result.StatusCode);
423423
}
424+
425+
[Fact]
426+
[Trait("HttpVerb", "DELETE")]
427+
internal async Task GivenDeleteAsyncWhenDataExistThenDeletesData()
428+
{
429+
// Arrange
430+
mockChannelService
431+
.Setup(_ => _.DeleteAsync(It.IsAny<int>()))
432+
.Returns(Task.CompletedTask)
433+
.Verifiable();
434+
435+
// Act
436+
var response = await channelController.DeleteAsync(It.IsAny<int>());
437+
438+
// Assert
439+
mockChannelService.VerifyAll();
440+
var result = Assert.IsType<NoContentResult>(response);
441+
Assert.Equal((int)HttpStatusCode.NoContent, result.StatusCode);
442+
}
443+
444+
[Fact]
445+
[Trait("HttpVerb", "DELETE")]
446+
internal async Task GivenDeleteAsyncWhenNoDataExistThenHandlesGracefully()
447+
{
448+
// Arrange
449+
mockChannelService
450+
.Setup(_ => _.DeleteAsync(It.IsAny<int>()))
451+
.Throws<ApplicationException>()
452+
.Verifiable();
453+
454+
// Act
455+
var response = await channelController.DeleteAsync(It.IsAny<int>());
456+
457+
// Assert
458+
mockChannelService.VerifyAll();
459+
var result = Assert.IsType<NotFoundResult>(response);
460+
Assert.Equal((int)HttpStatusCode.NotFound, result.StatusCode);
461+
}
462+
463+
[Fact]
464+
[Trait("HttpVerb", "DELETE")]
465+
internal async Task GivenDeleteAsyncWhenExceptionThrownThenHandlesGracefully()
466+
{
467+
// Arrange
468+
mockChannelService
469+
.Setup(_ => _.DeleteAsync(It.IsAny<int>()))
470+
.Throws<Exception>()
471+
.Verifiable();
472+
473+
// Act
474+
var response = await channelController.DeleteAsync(It.IsAny<int>());
475+
476+
// Assert
477+
mockChannelService.VerifyAll();
478+
var result = Assert.IsType<BadRequestResult>(response);
479+
Assert.Equal((int)HttpStatusCode.BadRequest, result.StatusCode);
480+
}
481+
482+
[Fact]
483+
[Trait("HttpVerb", "DELETE")]
484+
internal async Task GivenDeleteBulkAsyncWhenDataExistThenDeletesData()
485+
{
486+
// Arrange
487+
mockChannelService
488+
.Setup(_ => _.DeleteBulkAsync(It.IsAny<ICollection<int>>()))
489+
.Returns(Task.CompletedTask)
490+
.Verifiable();
491+
492+
// Act
493+
var response = await channelController.DeleteBulkAsync(It.IsAny<ICollection<int>>());
494+
495+
// Assert
496+
mockChannelService.VerifyAll();
497+
var result = Assert.IsType<NoContentResult>(response);
498+
Assert.Equal((int)HttpStatusCode.NoContent, result.StatusCode);
499+
}
500+
501+
[Fact]
502+
[Trait("HttpVerb", "DELETE")]
503+
internal async Task GivenDeleteBulkAsyncWhenNoDataExistThenHandlesGracefully()
504+
{
505+
// Arrange
506+
mockChannelService
507+
.Setup(_ => _.DeleteBulkAsync(It.IsAny<ICollection<int>>()))
508+
.Throws<ApplicationException>()
509+
.Verifiable();
510+
511+
// Act
512+
var response = await channelController.DeleteBulkAsync(It.IsAny<ICollection<int>>());
513+
514+
// Assert
515+
mockChannelService.VerifyAll();
516+
var result = Assert.IsType<NotFoundResult>(response);
517+
Assert.Equal((int)HttpStatusCode.NotFound, result.StatusCode);
518+
}
519+
520+
[Fact]
521+
[Trait("HttpVerb", "DELETE")]
522+
internal async Task GivenDeleteBulkAsyncWhenExceptionThrownThenHandlesGracefully()
523+
{
524+
// Arrange
525+
mockChannelService
526+
.Setup(_ => _.DeleteBulkAsync(It.IsAny<ICollection<int>>()))
527+
.Throws<Exception>()
528+
.Verifiable();
529+
530+
// Act
531+
var response = await channelController.DeleteBulkAsync(It.IsAny<ICollection<int>>());
532+
533+
// Assert
534+
mockChannelService.VerifyAll();
535+
var result = Assert.IsType<BadRequestResult>(response);
536+
Assert.Equal((int)HttpStatusCode.BadRequest, result.StatusCode);
537+
}
424538
}
425539
}

0 commit comments

Comments
 (0)