Skip to content

Commit

Permalink
Test graph repository (#115)
Browse files Browse the repository at this point in the history
* feat(Test-GraphRepository): add UserFileRepositoryTests class.

* feat(Test-GraphRepository): add FileUploadedRepositoryTests class.

* feat(Test-GraphRepository): add EdgeRepositoryTest classes.

* feat(Test-GraphRepository): add GraphEdgeRepositoryTests class.

* feat(Test-GraphRepository): add GraphNodeRepositoryTests class.

* feat(Test-GraphRepository): add nodeRepositoryTests classes.

* feat(Test-GraphRepository): add CategoryRepositoryTests class.
  • Loading branch information
K-Kabiri authored Sep 9, 2024
1 parent 4bd0086 commit e407626
Show file tree
Hide file tree
Showing 30 changed files with 2,725 additions and 20 deletions.
9 changes: 9 additions & 0 deletions AnalysisData/AnalysisData.sln.DotSettings.user
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,15 @@
&lt;/SessionState&gt;</s:String>
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=5a6db5c4_002D6b10_002D4bf8_002D8325_002D71b5cea4c333/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" Name="UpdateCategory_ShouldReturnOk_WhenCategoryIsUpdatedSuccessfully" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;&#xD;
&lt;Project Location="C:\Users\Mahdi\Desktop\code star proje\Summer1403-Project-Group03-Backend\AnalysisData\TestProject" Presentation="&amp;lt;TestProject&amp;gt;" /&gt;&#xD;
&lt;/SessionState&gt;</s:String>
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=7500013c_002De743_002D474e_002Db412_002D6de4ada69526/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" IsActive="True" Name="GetEdgeAttributeValues_ShouldReturnEdgeInformationDtos_WhenEdgeAttributeValuesExist" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;&#xD;
&lt;TestAncestor&gt;&#xD;
&lt;TestId&gt;xUnit::9AEC1F3F-B1B3-47C1-82D4-E432E2D77E0E::net8.0::GraphEdgeRepositoryTests&lt;/TestId&gt;&#xD;
&lt;TestId&gt;xUnit::9AEC1F3F-B1B3-47C1-82D4-E432E2D77E0E::net8.0::GraphNodeRepositoryTests&lt;/TestId&gt;&#xD;
&lt;TestId&gt;xUnit::9AEC1F3F-B1B3-47C1-82D4-E432E2D77E0E::net8.0::AttributeNodeRepositoryTests&lt;/TestId&gt;&#xD;
&lt;TestId&gt;xUnit::9AEC1F3F-B1B3-47C1-82D4-E432E2D77E0E::net8.0::EntityNodeRepositoryTests&lt;/TestId&gt;&#xD;
&lt;TestId&gt;xUnit::9AEC1F3F-B1B3-47C1-82D4-E432E2D77E0E::net8.0::ValueNodeRepositoryTests&lt;/TestId&gt;&#xD;
&lt;/TestAncestor&gt;&#xD;
&lt;/SessionState&gt;</s:String>
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=fe4fe44b_002D7953_002D4423_002Dac04_002Da7f1b464e5c0/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" Name="ResetPasswordAsync_ShouldCallPasswordCheck_WhenCalled" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;&#xD;
&lt;Project Location="E:\CodeStar1403\Summer1403-Project-Group03-Backend\AnalysisData\TestProject" Presentation="&amp;lt;TestProject&amp;gt;" /&gt;&#xD;
Expand Down

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public async Task<UserFile> GetByUserIdAsync(Guid userId)

public async Task<IEnumerable<UserFile>> GetByFileIdAsync(int fileId)
{
return await _context.UserFiles.Include(x => x.User)
return await _context.UserFiles.Include(x=>x.User)
.Where(u => u.FileId == fileId)
.ToListAsync();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
using Moq;
using Newtonsoft.Json;

namespace TestProject.Graph.Controllers;
namespace TestProject.Controllers.GraphControllers;

public class CategoryControllersTest
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
using Moq;
using Newtonsoft.Json;

namespace TestProject.Graph.Controllers;
namespace TestProject.Controllers.GraphControllers;

public class FileAccessControllersTest
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
using AnalysisData.Controllers.UserController;
using AnalysisData.Dtos.UserDto.UserDto;
using AnalysisData.Exception.PasswordException;
using AnalysisData.Exception.UserException;
using AnalysisData.Services.UserService.AdminService.Abstraction;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using NSubstitute;

namespace TestProject.User.Controllers;
namespace TestProject.Controllers.UserControllers;

public class AdminControllerTests
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
using Newtonsoft.Json;
using NSubstitute;

namespace TestProject.User.Controllers;
namespace TestProject.Controllers.UserControllers;

public class RoleControllerTests
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
using Newtonsoft.Json;
using NSubstitute;

namespace TestProject.User.Controllers;
namespace TestProject.Controllers.UserControllers;

public class UserControllerTests
{
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
using AnalysisData.Data;
using AnalysisData.Models.GraphModel.Category;
using AnalysisData.Repositories.GraphRepositories.CategoryRepository;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;

public class CategoryRepositoryTests
{
private readonly ServiceProvider _serviceProvider;
private readonly CategoryRepository _sut;

public CategoryRepositoryTests()
{
var options = new DbContextOptionsBuilder<ApplicationDbContext>()
.UseInMemoryDatabase(Guid.NewGuid().ToString())
.Options;

var serviceCollection = new ServiceCollection();
serviceCollection.AddScoped(_ => new ApplicationDbContext(options));
_serviceProvider = serviceCollection.BuildServiceProvider();

_sut = new CategoryRepository(CreateDbContext());
}

private ApplicationDbContext CreateDbContext()
{
return _serviceProvider.GetRequiredService<ApplicationDbContext>();
}

[Fact]
public async Task GetAllAsync_ShouldReturnAllCategories_WhenCategoryExist()
{
using var scope = _serviceProvider.CreateScope();
var context = CreateDbContext();

// Arrange
var category1 = new Category { Id = 1, Name = "Category1" };
var category2 = new Category { Id = 2, Name = "Category2" };
await context.Categories.AddRangeAsync(category1, category2);
await context.SaveChangesAsync();

// Act
var result = await _sut.GetAllAsync();

// Assert
Assert.Equal(2,result.Count());
}

[Fact]
public async Task GetByIdAsync_ShouldReturnCategoryWithGivenId_WhenCategoryWithInputIdExist()
{
using var scope = _serviceProvider.CreateScope();
var context = CreateDbContext();

// Arrange
var category = new Category { Id = 1, Name = "Category1" };
await context.Categories.AddAsync(category);
await context.SaveChangesAsync();

// Act
var result = await _sut.GetByIdAsync(1);

// Assert
Assert.NotNull(result);
Assert.Equal("Category1", result.Name);
}

[Fact]
public async Task GetByNameAsync_ShouldReturnCategoryWithGivenName_WhenCategoryWithInputNameExist()
{
using var scope = _serviceProvider.CreateScope();
var context = CreateDbContext();

// Arrange
var category = new Category { Id = 1, Name = "UniqueCategory" };
await context.Categories.AddAsync(category);
await context.SaveChangesAsync();

// Act
var result = await _sut.GetByNameAsync("UniqueCategory");

// Assert
Assert.NotNull(result);
Assert.Equal("UniqueCategory", result.Name);
}

[Fact]
public async Task AddAsync_ShouldAddCategoryToDatabase_Whenever()
{
using var scope = _serviceProvider.CreateScope();
var context = CreateDbContext();

// Arrange
var category = new Category { Id = 1, Name = "NewCategory" };

// Act
await _sut.AddAsync(category);
var result = await context.Categories.FindAsync(1);

// Assert
Assert.NotNull(result);
Assert.Equal("NewCategory", result.Name);
}

[Fact]
public async Task UpdateAsync_ShouldUpdateCategory_WhenCategoryWithInputIdExist()
{
using var scope = _serviceProvider.CreateScope();
var context = CreateDbContext();

// Arrange
var category = new Category { Id = 1, Name = "OldName" };
await context.Categories.AddAsync(category);
await context.SaveChangesAsync();

// Act
category.Name = "UpdatedName";
await _sut.UpdateAsync(category);
var result = await context.Categories.FindAsync(1);

// Assert
Assert.NotNull(result);
Assert.Equal("UpdatedName", result.Name);
}

[Fact]
public async Task DeleteAsync_ShouldRemoveCategoryFromDatabase_WhenCategoryWithInputIdExist()
{
using var scope = _serviceProvider.CreateScope();
var context = CreateDbContext();

// Arrange
var category = new Category { Id = 1, Name = "category" };
await context.Categories.AddAsync(category);
await context.SaveChangesAsync();

// Act
await _sut.DeleteAsync(1);
var result = await context.Categories.FindAsync(1);

// Assert
Assert.Null(result);
}
}
Loading

0 comments on commit e407626

Please sign in to comment.