Beispiel #1
0
        public void DatabaseFindByUsernameOrIdThrowsIOPWhenNotFound()
        {
            var db = new App.Database(this.PersonObjects);

            Assert.That(() => db.FindByUsername("Penka"), Throws.InvalidOperationException, "The database does not throw exceptions when the username is not found.");

            Assert.That(() => db.FindById(500), Throws.InvalidOperationException, "The database does not throw exceptions when the Id is not found");
        }
Beispiel #2
0
        public void DatabaseCapacityIsExactly16()
        {
            var db = new App.Database();


            Assert.That(db.Capcaity, Is.EqualTo(16), $"Database.Capacity is not equal to 16! Current value: {db.Capcaity}");
            Assert.That(db.Fetch().Length, Is.EqualTo(16), "Database.Fetch returns array not equal to 16!");
        }
Beispiel #3
0
        public void DatabaseFindByUsernameIsCaseSensitive()
        {
            var peopleObjects = this.PersonObjects;

            var db = new App.Database(peopleObjects);

            var firstUserName = peopleObjects.First().Name.ToLower();

            Assert.That(() => db.FindByUsername(firstUserName), Throws.InvalidOperationException, "The database is case insensitive");
        }
Beispiel #4
0
        public void DatabaseElementsAreRemovedInLIFOOrder()
        {
            var db = new App.Database(1, 2, 3);

            var lastElement = db.Fetch()[db.LastIndex];

            db.Remove();

            var lastElementAfterRemoval = db.Fetch()[db.LastIndex];

            Assert.That(lastElement, Is.Not.EqualTo(lastElementAfterRemoval), "The removal is either not in LIFO order or the element had not been removed");
        }
Beispiel #5
0
        public void DatabaseElementsAreAddedInLIFOOrder()
        {
            var db = new App.Database(1, 8);

            var addedItem = 5;

            db.Add(addedItem);

            var lastItem = db.Fetch()[db.LastIndex];

            Assert.That(lastItem, Is.EqualTo(addedItem), "The adding order is not LIFO!");
        }
Beispiel #6
0
        public void DatabaseElementsAreAddedInLIFOOrder()
        {
            var peopleArray = this.PersonObjects;

            var db = new App.Database(peopleArray[0], peopleArray[1]);

            var addedItem = peopleArray[2];

            db.Add(addedItem);

            var lastItem = db.Fetch()[db.LastIndex];

            Assert.That(lastItem, Is.EqualTo(addedItem), "The adding order is not LIFO!");
        }
Beispiel #7
0
        private void CheckForExceptionOnAdding(List <IPerson> peopleList, IPerson newPerson, string message)
        {
            //Make sure repeating usernames are rejected on creation
            peopleList.Add(newPerson);

            Assert.That(() => new App.Database(peopleList.ToArray()), Throws.InvalidOperationException);

            //Make sure repeating usernames are rejected on addition
            peopleList.Remove(peopleList.Last());

            var db = new App.Database(peopleList.ToArray());

            Assert.That(() => db.Add(newPerson), Throws.InvalidOperationException);
        }
Beispiel #8
0
        public void DatabaseFindByIdThrowsArgExWhenBelowZero()
        {
            var db = new App.Database();

            try
            {
                db.FindById(-51);
            }
            catch (Exception e)
            {
                Assert.That(e is ArgumentOutOfRangeException, "The thrown exception is incorrect");

                if (e is ArgumentOutOfRangeException)
                {
                    Assert.That(e is ArgumentOutOfRangeException, "The Database.FindById accepts negative ids");
                }
            }
        }
Beispiel #9
0
        public void DatabaseConstructorStoresValuesInArray()
        {
            var defaultArray = new int[] { 3, 2, 1, 8, 7 };

            var db = new App.Database(defaultArray);

            var fetchedArray = db.Fetch();

            var elementsAreSaved = true;

            for (int i = 0; i < defaultArray.Length; i++)
            {
                if (defaultArray[i] != fetchedArray[i])
                {
                    elementsAreSaved = false;
                    break;
                }
            }

            Assert.That(elementsAreSaved, "There was a missmatch when checking saved elements. Make sure they are saved correctly!");
        }
Beispiel #10
0
        public void DatabaseFindByUsernameAndIdWorks()
        {
            var peopleObjects = this.PersonObjects;

            var firstPerson = peopleObjects[0];

            var db = new App.Database(peopleObjects);

            IPerson personByUsername;

            try
            {
                personByUsername = db.FindByUsername(firstPerson.Name);
                Assert.That(personByUsername, Is.EqualTo(firstPerson));
            }
            catch (Exception) { throw new AssertionException("The Database.FindByUsername() does not work properly"); }

            try
            {
                personByUsername = db.FindById(firstPerson.Id);
                Assert.That(personByUsername, Is.EqualTo(firstPerson));
            }
            catch (Exception) { throw new AssertionException("The Database.FindById() does not work properly"); }
        }
Beispiel #11
0
        public void DatabaseEmptyArrayRemovalResultsInIOPException()
        {
            var db = new App.Database();

            Assert.That(() => db.Remove(), Throws.InvalidOperationException);
        }
Beispiel #12
0
        public void DatabaseShouldThrowInvalidOperationExceptionIfOverflows16()
        {
            var db = new App.Database(new int[16]);

            Assert.That(() => db.Add(1), Throws.InvalidOperationException);
        }
Beispiel #13
0
        public void DatabaseShouldThrowInvalidOperationExceptionIfOverflows16()
        {
            var db = new App.Database(this.PersonObjects);

            Assert.That(() => db.Add(this.people[0].Object), Throws.InvalidOperationException);
        }
Beispiel #14
0
        public void DatabaseFindByUsernameThrowsArgExWhenNull()
        {
            var db = new App.Database();

            Assert.That(() => db.FindByUsername(null), Throws.ArgumentNullException, "The Database.FindByUsername accepts null arguments");
        }