public void CreateImage()
        {
            var connectionString = ConfigurationManager.AppSettings["localConnection"];
            using (IDbConnection connection = new SqlConnection(connectionString))
            using (var transactionScope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
            using (var imageRepository = new UserImageRepository(connection))
            using (var userRepository = new UserDatabaseRepository(connection))
            using (var roleRepository = new RoleRepository(connection))
            {
                var image = new Image
                {
                    Description = "My description",
                    Filename = "test",
                    Extension = "jpg",
                    MimeType = "application/jpg",
                    Original = new FileInfo { Data = new Lazy<byte[]>(() => new byte[5]), Path = @"c:\tmp\original.jpg" },
                    Preview = new FileInfo { Data = new Lazy<byte[]>(() => new byte[5]), Path = @"c:\tmp\preview.jpg" },
                    Thumbnail = new FileInfo { Data = new Lazy<byte[]>(() => new byte[5]), Path = @"c:\tmp\thumbnail.jpg" },
                };

                // User ID = 2
                var roleCreate = roleRepository.Create(new Role { Name = "User" }, _ => Task.FromResult(0)).Result;
                var userCreate = userRepository.Create(new User
                {
                    Username = "******",
                    Email = "*****@*****.**",
                    FirstName = "John",
                    LastName = "Doe",
                    Roles = new List<Role> { roleCreate.ValueOrFailure() },
                }, _ => Task.FromResult(0)).Result;
                var created = imageRepository.Create(image, _ => Task.FromResult(0), userCreate.ValueOrFailure().ID).Result;
                Assert.True(created.HasValue, "Image is not created");
            }
        }
        public void CreateUser()
        {
            var connectionString = ConfigurationManager.AppSettings["localConnection"];
            using (IDbConnection connection = new SqlConnection(connectionString))
            using (var transactionScope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
            using(var userRepository = new UserDatabaseRepository(connection))
            using (var roleRepository = new RoleRepository(connection))
            {
                // To create a USER you MUST first have already created a ROLE!
                var role = new Role { Name = "User" };
                var createdRole = roleRepository.Create(role, _ => Task.FromResult(0)).Result;

                createdRole.Match(r =>
                {
                    var user = new User
                    {
                        Email = "*****@*****.**",
                        FirstName = "John",
                        LastName = "Doe",
                        Roles = new List<Role> { r },
                        Username = "******"
                    };

                    var created = userRepository.Create(user, _ => Task.FromResult(0)).Result;
                    Assert.True(created.HasValue);
                },
                () =>
                {
                    Assert.True(false, "Role has not been created!");
                });

            }
        }
Beispiel #3
0
        public async Task TestDatabaseFindUserById()
        {
            const int id = 1;

            var options = new DbContextOptionsBuilder <UserContext>()
                          .UseInMemoryDatabase("Users")
                          .Options;

            await using var context = new UserContext(options);
            var repository = new UserDatabaseRepository(context);

            repository.Create(new Core.Entities.User());

            var findUser = new FindUser(repository);

            var user = await findUser.ByIdAsync(id);

            Assert.AreEqual(id, user.Id);
        }