You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
194 lines
6.8 KiB
194 lines
6.8 KiB
using Microsoft.Data.Sqlite;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace UnitTestEF.Entities;
|
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
using Infrastructure;
|
|
using Infrastructure.Entities;
|
|
|
|
[TestClass]
|
|
public class AlumniTest
|
|
{
|
|
[TestMethod]
|
|
public async Task AddAlumniTest()
|
|
{
|
|
var connection = new SqliteConnection("DataSource=:memory:");
|
|
connection.Open();
|
|
var options = new DbContextOptionsBuilder<AlumniDbContext>()
|
|
.UseSqlite(connection)
|
|
.Options;
|
|
using (var context = new AlumniDbContext(options))
|
|
{
|
|
context.Database.EnsureDeleted();
|
|
context.Database.EnsureCreated();
|
|
|
|
var alumnis = new List<User>(
|
|
[
|
|
new User
|
|
{
|
|
Id = "1",
|
|
FirstName = "Test",
|
|
LastName = "Test",
|
|
Email = "test@gmail.com",
|
|
EntryYear = "2021",
|
|
Password = "1234567890",
|
|
Role = "ADMIN"
|
|
},
|
|
new User
|
|
{
|
|
Id = "2",
|
|
FirstName = "Test2",
|
|
LastName = "Test2",
|
|
Email = "test2@gmail.com",
|
|
EntryYear = "2021",
|
|
Password = "1234567890",
|
|
Role = "USER",
|
|
}
|
|
]
|
|
);
|
|
|
|
await context.Alumni.AddRangeAsync(alumnis);
|
|
await context.SaveChangesAsync();
|
|
|
|
Assert.AreEqual(2, await context.Alumni.CountAsync());
|
|
|
|
var inBaseAlumni = await context.Alumni.FirstOrDefaultAsync(a => a.Id == "1");
|
|
Assert.IsNotNull(inBaseAlumni);
|
|
Assert.AreEqual("1", inBaseAlumni.Id);
|
|
Assert.AreEqual("Test", inBaseAlumni.FirstName);
|
|
Assert.AreEqual("Test", inBaseAlumni.LastName);
|
|
Assert.AreEqual("test@gmail.com", inBaseAlumni.Email);
|
|
Assert.AreEqual("2021", inBaseAlumni.EntryYear);
|
|
Assert.AreEqual("1234567890", inBaseAlumni.Password);
|
|
Assert.AreEqual("ADMIN", inBaseAlumni.Role);
|
|
|
|
var inBaseAlumni2 = await context.Alumni.FirstOrDefaultAsync(a => a.Id == "2");
|
|
Assert.IsNotNull(inBaseAlumni2);
|
|
Assert.AreEqual("2", inBaseAlumni2.Id);
|
|
Assert.AreEqual("Test2", inBaseAlumni2.FirstName);
|
|
Assert.AreEqual("Test2", inBaseAlumni2.LastName);
|
|
Assert.AreEqual("test2@gmail.com", inBaseAlumni2.Email);
|
|
Assert.AreEqual("2021", inBaseAlumni2.EntryYear);
|
|
Assert.AreEqual("1234567890", inBaseAlumni2.Password);
|
|
Assert.AreEqual("USER", inBaseAlumni2.Role);
|
|
}
|
|
}
|
|
|
|
[TestMethod]
|
|
public async Task DeleteAlumniTest()
|
|
{
|
|
var connection = new SqliteConnection("DataSource=:memory:");
|
|
connection.Open();
|
|
var options = new DbContextOptionsBuilder<AlumniDbContext>()
|
|
.UseSqlite(connection)
|
|
.Options;
|
|
using (var context = new AlumniDbContext(options))
|
|
{
|
|
context.Database.EnsureDeleted();
|
|
context.Database.EnsureCreated();
|
|
|
|
var alumni = new User
|
|
{
|
|
Id = "1",
|
|
FirstName = "Test",
|
|
LastName = "Test",
|
|
Email = "test@gmail.com",
|
|
EntryYear = "2021",
|
|
Password = "1234567890",
|
|
Role = "ADMIN"
|
|
};
|
|
|
|
await context.Alumni.AddAsync(alumni);
|
|
await context.SaveChangesAsync();
|
|
|
|
Assert.AreEqual(1, await context.Alumni.CountAsync());
|
|
|
|
var inBaseAlumni = await context.Alumni.FirstOrDefaultAsync(a => a.Id == "1");
|
|
Assert.IsNotNull(inBaseAlumni);
|
|
|
|
context.Alumni.Remove(alumni);
|
|
await context.SaveChangesAsync();
|
|
|
|
Assert.AreEqual(0, await context.Alumni.CountAsync());
|
|
}
|
|
}
|
|
|
|
[TestMethod]
|
|
public async Task UpdateAlumniTest()
|
|
{
|
|
var connection = new SqliteConnection("DataSource=:memory:");
|
|
connection.Open();
|
|
var options = new DbContextOptionsBuilder<AlumniDbContext>()
|
|
.UseSqlite(connection)
|
|
.Options;
|
|
using (var context = new AlumniDbContext(options))
|
|
{
|
|
context.Database.EnsureDeleted();
|
|
context.Database.EnsureCreated();
|
|
|
|
var alumni = new User
|
|
{
|
|
Id = "1",
|
|
FirstName = "Test",
|
|
LastName = "Test",
|
|
Email = "test@gmail.com",
|
|
EntryYear = "2021",
|
|
Password = "1234567890",
|
|
Role = "ADMIN"
|
|
};
|
|
|
|
await context.Alumni.AddAsync(alumni);
|
|
await context.SaveChangesAsync();
|
|
|
|
Assert.AreEqual(1, await context.Alumni.CountAsync());
|
|
|
|
var inBaseAlumni = await context.Alumni.FirstOrDefaultAsync(a => a.Id == "1");
|
|
Assert.IsNotNull(inBaseAlumni);
|
|
|
|
inBaseAlumni.FirstName = "Test2";
|
|
inBaseAlumni.LastName = "Test2";
|
|
inBaseAlumni.Email = "test2@gmail.com";
|
|
inBaseAlumni.EntryYear = "2022";
|
|
inBaseAlumni.Password = "0987654321";
|
|
inBaseAlumni.Role = "USER";
|
|
|
|
await context.SaveChangesAsync();
|
|
|
|
var alumniAfterUpdate = await context.Alumni.FirstOrDefaultAsync(a => a.Id == "1");
|
|
Assert.IsNotNull(alumniAfterUpdate);
|
|
Assert.AreEqual("1", alumniAfterUpdate.Id);
|
|
Assert.AreEqual("Test2", alumniAfterUpdate.FirstName);
|
|
Assert.AreEqual("Test2", alumniAfterUpdate.LastName);
|
|
Assert.AreEqual("test2@gmail.com", alumniAfterUpdate.Email);
|
|
Assert.AreEqual("2022", alumniAfterUpdate.EntryYear);
|
|
Assert.AreEqual("0987654321", alumniAfterUpdate.Password);
|
|
Assert.AreEqual("USER", alumniAfterUpdate.Role);
|
|
}
|
|
}
|
|
|
|
[TestMethod]
|
|
public void ToString_ReturnsCorrectFormat()
|
|
{
|
|
// Arrange
|
|
var alumni = new User
|
|
{
|
|
Id = "1",
|
|
FirstName = "Test",
|
|
LastName = "Test",
|
|
Email = "test@gmail.com",
|
|
EntryYear = "2021",
|
|
Password = "1234567890",
|
|
Role = "ADMIN",
|
|
Experiences = new List<ExperienceEntity>(),
|
|
Formations = new List<FormationEntity>(),
|
|
Events = new List<EventEntity>()
|
|
};
|
|
|
|
// Act
|
|
var result = alumni.ToString();
|
|
|
|
// Assert
|
|
var expected = "\t------------Alumni Id : 1 ------------- :\n\tFirstname : Test Lastname : Test Email : test@gmail.com Role : ADMIN\n\tExperiences : 0 \tFormations : 0 \t Events : 0";
|
|
Assert.AreEqual(expected, result);
|
|
}
|
|
} |