public void Delete_appDoesNotExists_shouldHaveNoImpact()
        {
            // Arrange
            var repository = new DapperAppRepository(Connection, AppTableName);
            var appId = Guid.NewGuid();
            var serviceId = Guid.NewGuid();
            var createdAt = DateTime.Now;
            const string secret = "testsecret";
            const string name = "user1";
            QueryFromFile(InsertAppScriptFilename, new Dictionary<string, string>
            {
                { "AppId", appId.ToString() },
                { "ServiceId", serviceId.ToString() },
                { "Secret", secret },
                { "Enabled", "1"},
                { "CreatedAt", createdAt.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture) },
                { "Name", name },
            });
            var added = repository.Get(appId, serviceId);
            Assert.AreNotEqual(null, added);
            var expected = repository.GetAll().Count();

            // Act
            repository.Delete(added.Id.Value + 1);

            // Assert
            var actual = repository.GetAll().Count();
            Assert.AreEqual(expected, actual);
        }
        public void GetAll_appsExist_shouldReturnApps()
        {
            // Arrange
            var repository = new DapperAppRepository(Connection, AppTableName);
            var appId = Guid.NewGuid();
            var serviceId = Guid.NewGuid();
            var createdAt = DateTime.Now;
            const string secret = "testsecret";
            const string name = "user1";
            QueryFromFile(InsertAppScriptFilename, new Dictionary<string, string>
            {
                {"AppId", appId.ToString()},
                {"ServiceId", serviceId.ToString()},
                {"Secret", secret},
                {"Enabled", "1"},
                {"CreatedAt", createdAt.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture)},
                { "Name", name },
            });
            var appId2 = Guid.NewGuid();
            var serviceId2 = Guid.NewGuid();
            var createdAt2 = DateTime.Now - TimeSpan.FromSeconds(23);
            const string secret2 = "testsecret2";
            const string name2 = "user2";
            QueryFromFile(InsertAppScriptFilename, new Dictionary<string, string>
            {
                {"AppId", appId2.ToString()},
                {"ServiceId", serviceId2.ToString()},
                {"Secret", secret2},
                {"Enabled", "1"},
                {"CreatedAt", createdAt2.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture)},
                { "Name", name2 },
            });

            // Act
            var actual = repository.GetAll().ToList();

            // Assert
            Assert.AreEqual(2, actual.Count());

            var actualApp1 = actual.First(x => x.AppId == appId);
            Assert.AreEqual(serviceId, actualApp1.ServiceId);
            Assert.AreEqual(secret, actualApp1.Secret);
            Assert.AreEqual(createdAt.Date, actualApp1.CreatedAt.Date);
            Assert.AreEqual(name, actualApp1.Name);
            Assert.IsTrue(actualApp1.Enabled);

            var actualApp2 = actual.First(x => x.AppId == appId2);
            Assert.AreEqual(serviceId2, actualApp2.ServiceId);
            Assert.AreEqual(secret2, actualApp2.Secret);
            Assert.AreEqual(createdAt2.Date, actualApp2.CreatedAt.Date);
            Assert.AreEqual(name2, actualApp2.Name);
            Assert.IsTrue(actualApp2.Enabled);
        }