TestDbContext.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using Masuit.LuceneEFCore.SearchEngine.Test.Models;
  2. using Microsoft.EntityFrameworkCore;
  3. using System.IO;
  4. using System.Linq;
  5. namespace Masuit.LuceneEFCore.SearchEngine.Test.Helpers
  6. {
  7. public class TestDbContext : DbContext
  8. {
  9. public DbSet<User> Users { get; set; }
  10. public DbSet<City> Cities { get; set; }
  11. public TestDbContext(DbContextOptions<TestDbContext> options) : base(options)
  12. {
  13. InitializeData();
  14. }
  15. public TestDbContext() : this(new DbContextOptionsBuilder<TestDbContext>().UseInMemoryDatabase("Add_writes_to_database").Options)
  16. {
  17. }
  18. private void InitializeData()
  19. {
  20. if (!Users.Any())
  21. {
  22. TextReader reader = new StreamReader("Helpers\\TestData\\MOCK_USERS.csv");
  23. string data = reader.ReadLine();
  24. while ((data = reader.ReadLine()) != null)
  25. {
  26. string[] line = data.Split(',');
  27. Users.Add(new User()
  28. {
  29. FirstName = line[1],
  30. Surname = line[2],
  31. Email = line[3],
  32. JobTitle = line[5]
  33. });
  34. }
  35. reader.Close();
  36. SaveChanges();
  37. }
  38. if (!Cities.Any())
  39. {
  40. TextReader reader = new StreamReader("Helpers\\TestData\\MOCK_CITIES.csv");
  41. string data = reader.ReadLine();
  42. while ((data = reader.ReadLine()) != null)
  43. {
  44. string[] line = data.Split(',');
  45. Cities.Add(new City()
  46. {
  47. Id = int.Parse(line[0]),
  48. Country = line[1],
  49. Code = line[2],
  50. Name = line[3]
  51. });
  52. }
  53. reader.Close();
  54. SaveChanges();
  55. }
  56. }
  57. }
  58. }