public void AddOrUpdateUser_UserWithSameValuesButDifferentDiscordId_ShouldKeepBoth() { ulong discordId = 221313820847636491; long destinyProfileId = 4611686018467260757; int destinyMembershipType = BungieMembershipType.Steam; string accessToken = "access-token"; EmissaryUser user = new EmissaryUser(discordId, destinyProfileId, destinyMembershipType); EmissaryUser user2 = new EmissaryUser(69, destinyProfileId, destinyMembershipType); using (SqliteConnection connection = new SqliteConnection("DataSource=:memory:")) { connection.Open(); DbContextOptions <EmissaryDbContext> options = new DbContextOptionsBuilder <EmissaryDbContext>() .UseSqlite(connection) .Options; using (EmissaryDbContext dbContext = new EmissaryDbContext(options)) { dbContext.Database.EnsureCreated(); dbContext.Users.Add(user); dbContext.SaveChanges(); } using (EmissaryDbContext dbContext = new EmissaryDbContext(options)) { Assert.AreEqual(1, dbContext.Users.Count()); UserDao userDao = new UserDao(dbContext); userDao.AddOrUpdateUser(user2); } using (EmissaryDbContext dbContext = new EmissaryDbContext(options)) { Assert.AreEqual(2, dbContext.Users.Count()); EmissaryUser foundUser = dbContext.Users.Find(user.DiscordId); Assert.IsNotNull(foundUser); EmissaryUser foundUser2 = dbContext.Users.Find(user2.DiscordId); Assert.IsNotNull(foundUser2); } } }
public void AddOrUpdateUser_ExampleUser_ShouldWriteToDatabase() { ulong discordId = 221313820847636491; long destinyProfileId = 4611686018467260757; int destinyMembershipType = BungieMembershipType.Steam; string accessToken = "access-token"; EmissaryUser user = new EmissaryUser(discordId, destinyProfileId, destinyMembershipType); using (SqliteConnection connection = new SqliteConnection("DataSource=:memory:")) { connection.Open(); DbContextOptions <EmissaryDbContext> options = new DbContextOptionsBuilder <EmissaryDbContext>() .UseSqlite(connection) .Options; using (EmissaryDbContext dbContext = new EmissaryDbContext(options)) { // create the schema in the database // dbContext.Database.OpenConnection(); dbContext.Database.EnsureCreated(); // dbContext.Database.CloseConnection(); } using (EmissaryDbContext dbContext = new EmissaryDbContext(options)) { UserDao userDao = new UserDao(dbContext); userDao.AddOrUpdateUser(user); } using (EmissaryDbContext dbContext = new EmissaryDbContext(options)) { Assert.AreEqual(1, dbContext.Users.Count()); EmissaryUser foundUser = dbContext.Users.Find(discordId); Assert.AreEqual(discordId, foundUser.DiscordId); Assert.AreEqual(destinyProfileId, foundUser.DestinyProfileId); Assert.AreEqual(destinyMembershipType, foundUser.DestinyMembershipType); } } }