Ejemplo n.º 1
0
        public async Task <Api.Domain.Group> GetGroupById(int id)
        {
            using (MySqlConnection connection = new MySqlConnection(await _connectionInfo.GetConnectionStringAsync()))
            {
                await connection.OpenAsync().ConfigureAwait(false);

                MySqlCommand command = new MySqlCommand(GroupDaoResources.SelectGroupById, connection);
                command.Parameters.AddWithValue("id", id);

                command.Prepare();

                Api.Domain.Group group = null;
                using (DbDataReader reader = await command.ExecuteReaderAsync())
                {
                    while (await reader.ReadAsync())
                    {
                        group = new Api.Domain.Group(
                            reader.GetInt32("id"),
                            reader.GetString("name"));
                    }
                }
                connection.Close();

                return(group);
            }
        }
Ejemplo n.º 2
0
        async Task GivenGroupsInDatabase()
        {
            using (var dbContext = new WordkiDbContext(ConnectionStringProvider))
            {
                var user = Builder <Api.Domain.User> .CreateNew()
                           .With(u => u.Id            = 1)
                           .With(u => u.Name          = "user")
                           .With(u => u.Password      = Host.EncrypterMock.Object.Md5Hash("pass"))
                           .With(u => u.LastLoginDate = new DateTime(2020, 1, 1))
                           .With(u => u.CreationDate  = new DateTime(2020, 1, 1))
                           .Build();

                dbContext.Users.Add(user);

                var sequence = new SequentialGenerator <long> {
                    Direction = GeneratorDirection.Ascending, Increment = 1
                };
                sequence.StartingWith(1);

                var builder = Builder <Api.Domain.Group> .CreateNew()
                              .With(g => g.Id             = sequence.Generate())
                              .With(g => g.GroupLanguage1 = 1)
                              .With(g => g.GroupLanguage2 = 2)
                              .With(g => g.Name           = "name");

                var groups = new Api.Domain.Group[] { builder.Build(), builder.Build() };

                dbContext.Groups.AddRange(groups);
                await dbContext.SaveChangesAsync();
            }
        }
Ejemplo n.º 3
0
        public async Task GetGroupsByIdReturnsGroupsWhenGroupsExist()
        {
            int groupId = TestHelpers.CreateGroup(ConnectionString, Group1);

            Api.Domain.Group group = await _groupDao.GetGroupById(groupId);

            Assert.That(group.Id, Is.EqualTo(groupId));
            Assert.That(group.Name, Is.EqualTo(Group1));
        }
Ejemplo n.º 4
0
        public async Task CreateGroupCorrectlyInsertsGroup()
        {
            GroupForCreation groupForCreation = new GroupForCreation
            {
                Name = Group1
            };

            Api.Domain.Group group = await _groupDao.CreateGroup(groupForCreation);

            List <Api.Domain.Group> groups = TestHelpers.GetAllGroups(ConnectionString);

            Assert.That(groups.Count, Is.EqualTo(1));
            Assert.That(groups[0].Id, Is.EqualTo(group.Id));
            Assert.That(groups[0].Name, Is.EqualTo(group.Name));
        }
Ejemplo n.º 5
0
        public static List <Api.Domain.Group> GetAllGroups(string connectionString)
        {
            List <Api.Domain.Group> groups = new List <Api.Domain.Group>();

            using (DbDataReader reader = MySqlHelper.ExecuteReader(connectionString, "SELECT * FROM `group`"))
            {
                while (reader.Read())
                {
                    Api.Domain.Group group = new Api.Domain.Group(
                        reader.GetInt32("id"),
                        reader.GetString("name"));

                    groups.Add(group);
                }
            }
            return(groups);
        }
Ejemplo n.º 6
0
        public async Task <Api.Domain.Group> CreateGroup(GroupForCreation user)
        {
            using (MySqlConnection connection = new MySqlConnection(await _connectionInfo.GetConnectionStringAsync()))
            {
                await connection.OpenAsync().ConfigureAwait(false);

                MySqlCommand command = new MySqlCommand(GroupDaoResources.InsertGroup, connection);
                command.Parameters.AddWithValue("name", user.Name);

                command.Prepare();

                ulong groupId = (ulong)await command.ExecuteScalarAsync();

                Api.Domain.Group newGroup = new Api.Domain.Group(
                    (int)groupId,
                    user.Name);

                connection.Close();

                return(newGroup);
            }
        }
Ejemplo n.º 7
0
        async Task GivenGroupInDatabase()
        {
            using (var dbContext = new WordkiDbContext(ConnectionStringProvider))
            {
                var user = new Api.Domain.User
                {
                    Id            = 1,
                    Name          = "user",
                    Password      = Host.EncrypterMock.Object.GetSalt(string.Empty),
                    CreationDate  = Host.Time2ProviderMock.Object.GetTime(),
                    LastLoginDate = Host.Time2ProviderMock.Object.GetTime()
                };
                dbContext.Users.Add(user);

                var group = new Api.Domain.Group
                {
                    Id                = 1,
                    GroupLanguage1    = 1,
                    GroupLanguage2    = 2,
                    Name              = "group",
                    GroupCreationDate = Host.Time2ProviderMock.Object.GetTime()
                };
                dbContext.Groups.Add(group);

                var word = new Api.Domain.Card
                {
                    Heads = new Side {
                        Value = "word1"
                    },
                    Tails = new Side {
                        Value = "word2"
                    },
                    IsVisible        = true,
                    WordCreationDate = new DateTime(2020, 01, 01),
                };
                dbContext.Words.Add(word);
                await dbContext.SaveChangesAsync();
            }
        }
Ejemplo n.º 8
0
        public async Task GetGroupsByIdReturnsNullWhenNoGroupExists()
        {
            Api.Domain.Group group = await _groupDao.GetGroupById(1);

            Assert.That(group, Is.Null);
        }