예제 #1
0
        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);
                }
            }
        }
예제 #2
0
        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);
                }
            }
        }