94 lines
2.5 KiB
C#
94 lines
2.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.IO;
|
|
using ConsoleApp1.Model;
|
|
using ConsoleApp1.ORM;
|
|
using NHibernate.Tool.hbm2ddl;
|
|
using NUnit.Framework;
|
|
|
|
namespace ConsoleApp1.Repository
|
|
{
|
|
[TestFixture]
|
|
public class NHibernatePersonRepositoryTest
|
|
{
|
|
private PersonRepository _personRepo;
|
|
|
|
[SetUp]
|
|
public void CreateSchema()
|
|
{
|
|
DeleteDatabaseIfExists();
|
|
|
|
var schemaUpdate = new SchemaUpdate(NHibernateHelper.Configuration);
|
|
schemaUpdate.Execute(false, true);
|
|
|
|
_personRepo = new PersonRepositoryNHibernate();
|
|
}
|
|
|
|
[Test]
|
|
public void CanSavePerson()
|
|
{
|
|
_personRepo.Save(new Person());
|
|
Assert.AreEqual(1, _personRepo.RowCount());
|
|
}
|
|
|
|
[Test]
|
|
public void CanGetPerson()
|
|
{
|
|
var person = new Person();
|
|
_personRepo.Save(person);
|
|
Assert.AreEqual(1, _personRepo.RowCount());
|
|
|
|
person = _personRepo.Get(person.Id);
|
|
Assert.IsNotNull(person);
|
|
}
|
|
|
|
[Test]
|
|
public void CanUpdatePerson()
|
|
{
|
|
var person = new Person();
|
|
_personRepo.Save(person);
|
|
Assert.AreEqual(1, _personRepo.RowCount());
|
|
|
|
person = _personRepo.Get(person.Id);
|
|
person.FirstName = "Test";
|
|
_personRepo.Update(person);
|
|
|
|
Assert.AreEqual(1, _personRepo.RowCount());
|
|
Assert.AreEqual("Test", _personRepo.Get(person.Id).FirstName);
|
|
}
|
|
|
|
[Test]
|
|
public void CanDeletePerson()
|
|
{
|
|
var person = new Person();
|
|
_personRepo.Save(person);
|
|
Assert.AreEqual(1, _personRepo.RowCount());
|
|
|
|
_personRepo.Delete(person);
|
|
Assert.AreEqual(0, _personRepo.RowCount());
|
|
}
|
|
|
|
[Test]
|
|
public void TestBulkInsert()
|
|
{
|
|
static Person[] GeneratePersons(int num = 3)
|
|
{
|
|
var ret = new Person[num];
|
|
for (var ii = 0; ii < num; ii++) ret[ii] = new Person {Id = Guid.NewGuid(), FirstName = "bac", LastName = "fif"};
|
|
return ret;
|
|
}
|
|
|
|
var persons = GeneratePersons(10000);
|
|
_personRepo.Save(persons);
|
|
Assert.AreEqual(10000, _personRepo.RowCount());
|
|
}
|
|
|
|
[TearDown]
|
|
public void DeleteDatabaseIfExists()
|
|
{
|
|
if (File.Exists("test.db"))
|
|
File.Delete("test.db");
|
|
}
|
|
}
|
|
} |