Copy from old Repository

This commit is contained in:
Santhosh S
2023-08-15 23:52:30 -04:00
parent 93ef278429
commit 4160c2300b
160 changed files with 8796 additions and 19 deletions

View File

@ -0,0 +1,50 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DamageAssesment.Api.Questions.Test
{
public class CategoryMockData
{
public static async Task<(bool, IEnumerable<Questions.Models.QuestionCategory>, string)> getOkResponse()
{
IEnumerable<Questions.Models.QuestionCategory> list = new List<Questions.Models.QuestionCategory>();
for (int i = 0; i < 10; i++)
{
list.Append(new Questions.Models.QuestionCategory { Id = i, CategoryImage = "img"+i,CategoryName="Category "+i });
}
return (true, list, null);
}
public static async Task<(bool, Questions.Models.QuestionCategory, string)> getOkResponse(int Id)
{
var Questions = await getOkResponse();
var Question = Questions.Item2.FirstOrDefault(s => s.Id == Id);
return (true, Question, null);
}
public static async Task<(bool, Questions.Models.QuestionCategory, string)> getBadRequestResponse()
{
return (false, null, "Bad Request");
}
public static async Task<(bool, Questions.Models.QuestionCategory, string)> getNotFoundResponse()
{
return (false, null, "Not Found");
}
public static async Task<(bool, IEnumerable<Questions.Models.QuestionCategory>, string)> getNoContentResponse()
{
IEnumerable<Questions.Models.QuestionCategory> list = new List<Questions.Models.QuestionCategory>();
return (false, list, null);
}
public static async Task<Questions.Models.QuestionCategory> getInputQuestionCategoryData()
{
return new Questions.Models.QuestionCategory { Id = 1, CategoryName = "Category 1",CategoryImage="img 1" };
}
}
}

View File

@ -0,0 +1,31 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.5" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
<PackageReference Include="Moq" Version="4.18.4" />
<PackageReference Include="xunit" Version="2.4.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="3.2.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\DamageAssesment.Api.Questions\DamageAssesment.Api.Questions.csproj" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,89 @@
using DamageAssesment.Api.Questions.Db;
using Microsoft.EntityFrameworkCore.Metadata.Internal;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DamageAssesment.Api.Questions.Test
{
public class MockData
{
public static async Task<(bool, IEnumerable<Questions.Models.Question>, string)> getOkResponse()
{
IEnumerable<Questions.Models.Question> list = new List<Questions.Models.Question>();
for (int i = 0; i < 10; i++)
{
list.Append(new Questions.Models.Question { Id = i, TypeText = "Text" + i, SurveyId = 1, QuestionNumber = 1, IsRequired = true, Comment = false, Key = true, QuestionGroup = "group1",CategoryId=i });
}
return (true, list, null);
}
public static async Task<(bool, List<Questions.Models.SurveyQuestions>, string)> getOkSurveyResponse()
{
List<Questions.Models.SurveyQuestions> list = new List<Questions.Models.SurveyQuestions>();
for (int i = 0; i < 10; i++)
{
List<Models.Question> question = new List<Models.Question>();
question.Add(new Models.Question { Id = i, TypeText = "Text" + i, SurveyId = 1, QuestionNumber = 1, IsRequired = true, Comment = false, Key = true, QuestionGroup = "group1", CategoryId = i });
list.Append(new Questions.Models.SurveyQuestions
{
CategoryId = i,
CategoryImage = "img" + i,
CategoryName = "Category " + i,
Questions = question
});
}
return (true, list, null);
}
public static async Task<(bool, Questions.Models.Question, string)> getOkResponse(int Id)
{
var Questions = await getOkResponse();
var Question = Questions.Item2.FirstOrDefault(s => s.Id == Id);
return (true, Question, null);
}
public static async Task<(bool, Questions.Models.Question, string)> getBadRequestResponse()
{
return (false, null, "Bad Request");
}
public static async Task<(bool, Questions.Models.Question, string)> getNotFoundResponse()
{
return (false, null, "Not Found");
}
public static async Task<(bool, IEnumerable<Questions.Models.Question>, string)> getNoContentResponse()
{
IEnumerable<Questions.Models.Question> list = new List<Questions.Models.Question>();
return (false, list, null);
}
public static async Task<(bool, List<Questions.Models.SurveyQuestions>, string)> getNoSurveyContentResponse()
{
List<Questions.Models.SurveyQuestions> list = new List<Questions.Models.SurveyQuestions>();
return (false, list, null);
}
public static async Task<Questions.Models.Question> getInputQuestionData()
{
Models.QuestionsTranslation QuestionsTranslation = new Models.QuestionsTranslation()
{
Language = "en",
QuestionText = "Sample question"
};
List<Models.QuestionsTranslation> QuestionsTranslations = new List<Models.QuestionsTranslation>();
QuestionsTranslations.Add(QuestionsTranslation);
return new Questions.Models.Question { Id = 1, Questions=QuestionsTranslations, TypeText = "Text 1", SurveyId = 1, QuestionNumber = 1, IsRequired = true, Comment = false, Key = true, QuestionGroup = "group1" ,CategoryId=1};
}
}
}

View File

@ -0,0 +1,343 @@
using AutoMapper;
using DamageAssesment.Api.Questions.Controllers;
using DamageAssesment.Api.Questions.Db;
using DamageAssesment.Api.Questions.Interfaces;
using DamageAssesment.Api.Questions.Models;
using DamageAssesment.Api.Questions.Profiles;
using DamageAssesment.Api.Questions.Providers;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Internal;
using Moq;
using Newtonsoft.Json;
using Xunit;
namespace DamageAssesment.Api.Questions.Test
{
public class QuestionServiceTest
{
[Fact(DisplayName = "Get Questions - Ok case")]
public async Task GetQuestionsAsync_ShouldReturnStatusCode200()
{
var mockQuestionService = new Mock<IQuestionsProvider>();
var mockResponse = await MockData.getOkResponse();
mockQuestionService.Setup(service => service.GetQuestionsAsync()).ReturnsAsync(mockResponse);
var QuestionProvider = new QuestionsController(mockQuestionService.Object);
var result = (OkObjectResult)await QuestionProvider.GetQuestionsAsync();
Assert.Equal(200, result.StatusCode);
}
[Fact(DisplayName = "Get Questions - NoContent Case")]
public async Task GetQuestionsAsync_ShouldReturnStatusCode204()
{
var mockQuestionService = new Mock<IQuestionsProvider>();
var mockResponse = await MockData.getNoContentResponse();
mockQuestionService.Setup(service => service.GetQuestionsAsync()).ReturnsAsync(mockResponse);
var QuestionProvider = new QuestionsController(mockQuestionService.Object);
var result = (NoContentResult)await QuestionProvider.GetQuestionsAsync();
Assert.Equal(204, result.StatusCode);
}
[Fact(DisplayName = "Get Question by Id - Ok case")]
public async Task GetQuestionAsync_ShouldReturnStatusCode200()
{
var mockQuestionService = new Mock<IQuestionsProvider>();
var mockResponse = await MockData.getOkResponse(1);
mockQuestionService.Setup(service => service.GetQuestionAsync(1)).ReturnsAsync(mockResponse);
var QuestionProvider = new QuestionsController(mockQuestionService.Object);
var result = (OkObjectResult)await QuestionProvider.GetQuestionAsync(1);
Assert.Equal(200, result.StatusCode);
}
[Fact(DisplayName = "Get Question by Id - NotFound case")]
public async Task GetQuestionAsync_ShouldReturnStatusCode404()
{
var mockQuestionService = new Mock<IQuestionsProvider>();
var mockResponse = await MockData.getNotFoundResponse();
mockQuestionService.Setup(service => service.GetQuestionAsync(99)).ReturnsAsync(mockResponse);
var QuestionProvider = new QuestionsController(mockQuestionService.Object);
var result = (NotFoundResult)await QuestionProvider.GetQuestionAsync(99);
Assert.Equal(404, result.StatusCode);
}
[Fact(DisplayName = "Get Question by SurveyID - Ok case")]
public async Task GetQuestionBySurveyAsync_ShouldReturnStatusCode200()
{
var mockQuestionService = new Mock<IQuestionsProvider>();
var mockResponse = await MockData.getOkSurveyResponse();
mockQuestionService.Setup(service => service.GetSurveyQuestionAsync(1,"en")).ReturnsAsync(mockResponse);
var QuestionProvider = new QuestionsController(mockQuestionService.Object);
var result = (OkObjectResult)await QuestionProvider.GetSurveyQuestions(1,"en");
Assert.Equal(200, result.StatusCode);
}
[Fact(DisplayName = "Get Question by SurveyID - NotFound case")]
public async Task GetQuestionBySurveyAsync_ShouldReturnStatusCode404()
{
var mockQuestionService = new Mock<IQuestionsProvider>();
var mockResponse = await MockData.getNoSurveyContentResponse();
mockQuestionService.Setup(service => service.GetSurveyQuestionAsync(99,"en")).ReturnsAsync(mockResponse);
var QuestionProvider = new QuestionsController(mockQuestionService.Object);
var result = (NotFoundResult)await QuestionProvider.GetSurveyQuestions(99,"en");
Assert.Equal(404, result.StatusCode);
}
[Fact(DisplayName = "Post Question - Ok case")]
public async Task PostQuestionAsync_ShouldReturnStatusCode200()
{
var mockQuestionService = new Mock<IQuestionsProvider>();
var mockResponse = await MockData.getOkResponse(1);
var mockInputQuestion = await MockData.getInputQuestionData();
mockQuestionService.Setup(service => service.PostQuestionAsync(mockInputQuestion)).ReturnsAsync(mockResponse);
var QuestionProvider = new QuestionsController(mockQuestionService.Object);
var result = (OkObjectResult)await QuestionProvider.CreateQuestion(mockInputQuestion);
Assert.Equal(200, result.StatusCode);
}
[Fact(DisplayName = "Post Question - BadRequest case")]
public async Task PostQuestionAsync_ShouldReturnStatusCode400()
{
var mockQuestionService = new Mock<IQuestionsProvider>();
var mockInputQuestion = await MockData.getInputQuestionData();
var mockResponse = await MockData.getBadRequestResponse();
mockQuestionService.Setup(service => service.UpdateQuestionAsync(mockInputQuestion)).ReturnsAsync(mockResponse);
var QuestionProvider = new QuestionsController(mockQuestionService.Object);
var result = (BadRequestObjectResult)await QuestionProvider.UpdateQuestion(mockInputQuestion);
Assert.Equal(400, result.StatusCode);
}
[Fact(DisplayName = "Put Question - Ok case")]
public async Task PutQuestionAsync_ShouldReturnStatusCode200()
{
var mockQuestionService = new Mock<IQuestionsProvider>();
var mockResponse = await MockData.getOkResponse(1);
var mockInputQuestion = await MockData.getInputQuestionData();
mockQuestionService.Setup(service => service.UpdateQuestionAsync(mockInputQuestion)).ReturnsAsync(mockResponse);
var QuestionProvider = new QuestionsController(mockQuestionService.Object);
var result = (OkObjectResult)await QuestionProvider.UpdateQuestion(mockInputQuestion);
Assert.Equal(200, result.StatusCode);
}
[Fact(DisplayName = "Put Question - NotFound case")]
public async Task PutQuestionAsync_ShouldReturnStatusCode404()
{
var mockQuestionService = new Mock<IQuestionsProvider>();
var mockResponse = await MockData.getNotFoundResponse();
var mockInputQuestion = await MockData.getInputQuestionData();
mockQuestionService.Setup(service => service.UpdateQuestionAsync(mockInputQuestion)).ReturnsAsync(mockResponse);
var QuestionProvider = new QuestionsController(mockQuestionService.Object);
var result = (NotFoundObjectResult)await QuestionProvider.UpdateQuestion(mockInputQuestion);
Assert.Equal(404, result.StatusCode);
}
[Fact(DisplayName = "Put Question - BadRequest case")]
public async Task PutQuestionAsync_ShouldReturnStatusCode400()
{
var mockQuestionService = new Mock<IQuestionsProvider>();
var mockResponse = await MockData.getBadRequestResponse();
var mockInputQuestion = await MockData.getInputQuestionData();
mockQuestionService.Setup(service => service.UpdateQuestionAsync(mockInputQuestion)).ReturnsAsync(mockResponse);
var QuestionProvider = new QuestionsController(mockQuestionService.Object);
var result = (BadRequestObjectResult)await QuestionProvider.UpdateQuestion(mockInputQuestion);
Assert.Equal(400, result.StatusCode);
}
[Fact(DisplayName = "Delete Question - Ok case")]
public async Task DeleteQuestionAsync_ShouldReturnStatusCode200()
{
var mockQuestionService = new Mock<IQuestionsProvider>();
var mockResponse = await MockData.getOkResponse(1);
mockQuestionService.Setup(service => service.DeleteQuestionAsync(1)).ReturnsAsync(mockResponse);
var QuestionProvider = new QuestionsController(mockQuestionService.Object);
var result = (OkObjectResult)await QuestionProvider.DeleteQuestion(1);
Assert.Equal(200, result.StatusCode);
}
[Fact(DisplayName = "Delete Question - NotFound case")]
public async Task DeleteQuestionAsync_ShouldReturnStatusCode404()
{
var mockQuestionService = new Mock<IQuestionsProvider>();
var mockResponse = await MockData.getNotFoundResponse();
mockQuestionService.Setup(service => service.DeleteQuestionAsync(1)).ReturnsAsync(mockResponse);
var QuestionProvider = new QuestionsController(mockQuestionService.Object);
var result = (NotFoundResult)await QuestionProvider.DeleteQuestion(1);
Assert.Equal(404, result.StatusCode);
}
// Question Category Test cases
[Fact(DisplayName = "Get Question Categories - Ok case")]
public async Task GetQuestionCategoriesAsync_ShouldReturnStatusCode200()
{
var mockQuestionService = new Mock<IQuestionsProvider>();
var mockResponse = await CategoryMockData.getOkResponse();
mockQuestionService.Setup(service => service.GetQuestionCategoriesAsync()).ReturnsAsync(mockResponse);
var QuestionProvider = new QuestionsController(mockQuestionService.Object);
var result = (OkObjectResult)await QuestionProvider.GetQuestionCategoriesAsync();
Assert.Equal(200, result.StatusCode);
}
[Fact(DisplayName = "Get Question Categories - NoContent Case")]
public async Task GetQuestionCategoriesAsync_ShouldReturnStatusCode204()
{
var mockQuestionService = new Mock<IQuestionsProvider>();
var mockResponse = await CategoryMockData.getNoContentResponse();
mockQuestionService.Setup(service => service.GetQuestionCategoriesAsync()).ReturnsAsync(mockResponse);
var QuestionProvider = new QuestionsController(mockQuestionService.Object);
var result = (NoContentResult)await QuestionProvider.GetQuestionCategoriesAsync();
Assert.Equal(204, result.StatusCode);
}
[Fact(DisplayName = "Get Question category by Id - Ok case")]
public async Task GetQuestioncategoryAsync_ShouldReturnStatusCode200()
{
var mockQuestionService = new Mock<IQuestionsProvider>();
var mockResponse = await CategoryMockData.getOkResponse(1);
mockQuestionService.Setup(service => service.GetQuestionCategoryAsync(1)).ReturnsAsync(mockResponse);
var QuestionProvider = new QuestionsController(mockQuestionService.Object);
var result = (OkObjectResult)await QuestionProvider.GetQuestionCategoryAsync(1);
Assert.Equal(200, result.StatusCode);
}
[Fact(DisplayName = "Get Question category by Id - NotFound case")]
public async Task GetQuestioncategoryAsync_ShouldReturnStatusCode404()
{
var mockQuestionService = new Mock<IQuestionsProvider>();
var mockResponse = await CategoryMockData.getNotFoundResponse();
mockQuestionService.Setup(service => service.GetQuestionCategoryAsync(99)).ReturnsAsync(mockResponse);
var QuestionProvider = new QuestionsController(mockQuestionService.Object);
var result = (NotFoundResult)await QuestionProvider.GetQuestionCategoryAsync(99);
Assert.Equal(404, result.StatusCode);
}
[Fact(DisplayName = "Post Question category - Ok case")]
public async Task PostQuestioncategoryAsync_ShouldReturnStatusCode200()
{
var mockQuestionService = new Mock<IQuestionsProvider>();
var mockResponse = await CategoryMockData.getOkResponse(1);
var mockInputQuestion = await CategoryMockData.getInputQuestionCategoryData();
mockQuestionService.Setup(service => service.PostQuestionCategoryAsync(mockInputQuestion)).ReturnsAsync(mockResponse);
var QuestionProvider = new QuestionsController(mockQuestionService.Object);
var result = (OkObjectResult)await QuestionProvider.CreateQuestionCategory(mockInputQuestion);
Assert.Equal(200, result.StatusCode);
}
[Fact(DisplayName = "Post Question category - BadRequest case")]
public async Task PostQuestioncategoryAsync_ShouldReturnStatusCode400()
{
var mockQuestionService = new Mock<IQuestionsProvider>();
var mockInputQuestion = await CategoryMockData.getInputQuestionCategoryData();
var mockResponse = await CategoryMockData.getBadRequestResponse();
mockQuestionService.Setup(service => service.PostQuestionCategoryAsync(mockInputQuestion)).ReturnsAsync(mockResponse);
var QuestionProvider = new QuestionsController(mockQuestionService.Object);
var result = (BadRequestObjectResult)await QuestionProvider.CreateQuestionCategory(mockInputQuestion);
Assert.Equal(400, result.StatusCode);
}
[Fact(DisplayName = "Put Question - Ok case")]
public async Task PutQuestioncategoryAsync_ShouldReturnStatusCode200()
{
var mockQuestionService = new Mock<IQuestionsProvider>();
var mockResponse = await CategoryMockData.getOkResponse(1);
var mockInputQuestion = await CategoryMockData.getInputQuestionCategoryData();
mockQuestionService.Setup(service => service.UpdateQuestionCategoryAsync(mockInputQuestion)).ReturnsAsync(mockResponse);
var QuestionProvider = new QuestionsController(mockQuestionService.Object);
var result = (OkObjectResult)await QuestionProvider.UpdateQuestionCategory(mockInputQuestion);
Assert.Equal(200, result.StatusCode);
}
[Fact(DisplayName = "Put Question - NotFound case")]
public async Task PutQuestioncategoryAsync_ShouldReturnStatusCode404()
{
var mockQuestionService = new Mock<IQuestionsProvider>();
var mockResponse = await CategoryMockData.getNotFoundResponse();
var mockInputQuestion = await CategoryMockData.getInputQuestionCategoryData();
mockQuestionService.Setup(service => service.UpdateQuestionCategoryAsync(mockInputQuestion)).ReturnsAsync(mockResponse);
var QuestionProvider = new QuestionsController(mockQuestionService.Object);
var result = (NotFoundObjectResult)await QuestionProvider.UpdateQuestionCategory(mockInputQuestion);
Assert.Equal(404, result.StatusCode);
}
[Fact(DisplayName = "Put Question - BadRequest case")]
public async Task PutQuestioncategoryAsync_ShouldReturnStatusCode400()
{
var mockQuestionService = new Mock<IQuestionsProvider>();
var mockResponse = await CategoryMockData.getBadRequestResponse();
var mockInputQuestion = await CategoryMockData.getInputQuestionCategoryData();
mockQuestionService.Setup(service => service.UpdateQuestionCategoryAsync(mockInputQuestion)).ReturnsAsync(mockResponse);
var QuestionProvider = new QuestionsController(mockQuestionService.Object);
var result = (BadRequestObjectResult)await QuestionProvider.UpdateQuestionCategory(mockInputQuestion);
Assert.Equal(400, result.StatusCode);
}
[Fact(DisplayName = "Delete Question - Ok case")]
public async Task DeleteQuestioncategoryAsync_ShouldReturnStatusCode200()
{
var mockQuestionService = new Mock<IQuestionsProvider>();
var mockResponse = await CategoryMockData.getOkResponse(1);
mockQuestionService.Setup(service => service.DeleteQuestionCategoryAsync(1)).ReturnsAsync(mockResponse);
var QuestionProvider = new QuestionsController(mockQuestionService.Object);
var result = (OkObjectResult)await QuestionProvider.DeleteQuestionCategory(1);
Assert.Equal(200, result.StatusCode);
}
[Fact(DisplayName = "Delete Question - NotFound case")]
public async Task DeleteQuestioncategoryAsync_ShouldReturnStatusCode404()
{
var mockQuestionService = new Mock<IQuestionsProvider>();
var mockResponse = await CategoryMockData.getNotFoundResponse();
mockQuestionService.Setup(service => service.DeleteQuestionCategoryAsync(1)).ReturnsAsync(mockResponse);
var QuestionProvider = new QuestionsController(mockQuestionService.Object);
var result = (NotFoundResult)await QuestionProvider.DeleteQuestionCategory(1);
Assert.Equal(404, result.StatusCode);
}
}
}