Exemple #1
0
        public async Task PhoneBook_AppendAlphabetically()
        {
            // Arrange
            var records = Enumerable.Range(0, recordsToCreate)
                          .Select(i => fakerPhoneRecord.Generate())
                          .ToList();

            // Act
            foreach (var record in records)
            {
                await PhoneBookWithFileWriting.AppendAsync(fileLocation, record.Name, record.Number);
            }

            // Assert
            var data = await File.ReadAllLinesAsync(fileLocation);

            data.Length
            .Should()
            .Be(recordsToCreate);
            data
            .Should()
            .Equal(records
                   .OrderBy(record => record.Name)
                   .Select(record => $"{record.Name},{record.Number}"));
        }
Exemple #2
0
        [InlineData(3, 2, 9, 1)]    // skip, take exceeds available, returns available
        public async Task PhoneBook_GetList(
            int recordsToCreate,
            int skip,
            int take,
            int expectedCount)
        {
            // Arrange
            var records = Enumerable.Range(0, recordsToCreate)
                          .Select(i => fakerPhoneRecord.Generate())
                          .ToList();

            foreach (var record in records)
            {
                await PhoneBookWithFileWriting.AppendAsync(fileLocation, record.Name, record.Number);
            }

            // Act
            IEnumerable <string> phoneRecords = await PhoneBookWithFileWriting.GetListAsync(fileLocation, skip, take);

            // Assert
            phoneRecords
            .Should()
            .HaveCount(expectedCount);
            records
            .OrderBy(record => record.Name)
            .Select(record => $"{record.Name},{record.Number}")
            .Skip(skip)
            .Take(take)
            .Should()
            .Equal(phoneRecords);
        }
Exemple #3
0
        public async Task PhoneBook_GetLargeList()
        {
            // Arrange
            var recordsToCreate = 100;

            for (int i = 0; i < recordsToCreate; i++)
            {
                var record = fakerPhoneRecord.Generate();
                await PhoneBookWithFileWriting.AppendAsync(fileLocation, record.Name, record.Number).ConfigureAwait(false);
            }

            // Act
            IEnumerable <string> phoneRecords = await PhoneBookWithFileWriting.GetListAsync(fileLocation, 0, recordsToCreate).ConfigureAwait(false);

            // Assert
            phoneRecords
            .Should()
            .HaveCount(recordsToCreate);
        }
Exemple #4
0
        [InlineData(10)] // Can append repeatedly
        public async Task PhoneBook_Append(int recordsToCreate)
        {
            // Arrange
            var records = Enumerable.Range(0, recordsToCreate)
                          .Select(i => fakerPhoneRecord.Generate())
                          .ToList();

            // Act
            foreach (var record in records)
            {
                await PhoneBookWithFileWriting.AppendAsync(fileLocation, record.Name, record.Number).ConfigureAwait(false);
            }

            // Assert
            var data = await File.ReadAllLinesAsync(fileLocation);

            data.Length
            .Should()
            .Be(recordsToCreate);
            data
            .Should()
            .BeEquivalentTo(records.Select(record => $"{record.Name},{record.Number}"));
        }