示例#1
0
        public void Create_OnSparseCollection_AddsEntrant()
        {
            var dal = new EntrantDal();

            var controller = new EntrantController(dal);

            var entrant1 = new Entrant {
                FirstName = "First1", LastName = "Last1"
            };
            var action1 = controller.Create(entrant1);

            Assert.That(action1, Is.TypeOf <CreatedAtActionResult>());

            var entrant2 = new Entrant {
                FirstName = "First2", LastName = "Last2"
            };
            var action2 = controller.Create(entrant2);

            Assert.That(action2, Is.TypeOf <CreatedAtActionResult>());

            // create a gap by removing first entrant
            var deleteAction = controller.Delete(1);

            Assert.That(deleteAction, Is.TypeOf <OkResult>());

            var newEntrant = new Entrant {
                FirstName = "First2", LastName = "Last2"
            };
            var action = controller.Create(newEntrant);

            Assert.That(action, Is.TypeOf <CreatedAtActionResult>());
        }
示例#2
0
        public void GetAll_Returns_EmptyList()
        {
            var dal = new EntrantDal();

            var items = dal.GetAll();

            Assert.That(items, Is.Empty);
        }
示例#3
0
        public void Create_WithBlankNames_ThrowsArgumentExceptionException(string firstName, string lastName)
        {
            var entrantMap = new ConcurrentDictionary <int, Entrant>();
            var dal        = new EntrantDal(entrantMap);

            var entrant = new Entrant {
                FirstName = firstName, LastName = lastName
            };

            Assert.Throws <ArgumentException>(() => dal.Create(entrant));
            Assert.That(entrantMap, Is.Empty);
        }
示例#4
0
        public void Create_OnEmptyCollection_AddsEntrant()
        {
            var dal = new EntrantDal();

            var controller = new EntrantController(dal);

            var entrant = new Entrant {
                FirstName = "First", LastName = "Last"
            };
            var action = controller.Create(entrant);

            Assert.That(action, Is.TypeOf <CreatedAtActionResult>());
        }
示例#5
0
        public void Delete_WithValidId_RemoveItem()
        {
            var entrant = new Entrant {
                FirstName = "firstName", LastName = "lastName", Id = 1
            };
            var entrantMap = new ConcurrentDictionary <int, Entrant>();

            entrantMap.TryAdd(entrant.Id, entrant);

            var dal = new EntrantDal(entrantMap);

            dal.Delete(entrant.Id);

            Assert.That(entrantMap, Is.Empty);
        }
示例#6
0
        public void Create_WithValidEntrant_AddToMap()
        {
            var entrantMap = new ConcurrentDictionary <int, Entrant>();
            var dal        = new EntrantDal(entrantMap);
            var entrant    = new Entrant {
                FirstName = "firstName", LastName = "lastName"
            };

            dal.Create(entrant);
            Assert.That(entrantMap.Count, Is.EqualTo(1));

            var firstItem = entrantMap.First().Value;

            Assert.That(firstItem.Id, Is.EqualTo(1));
        }
示例#7
0
        public void GetById_WithBadId_ThrowsNotFoundException()
        {
            var entrantMap = new ConcurrentDictionary <int, Entrant>
            {
                [1] = new Entrant {
                    FirstName = "firstName", LastName = "lastName", Id = 1
                },
                [2] = new Entrant {
                    FirstName = "firstName2", LastName = "lastName2", Id = 2
                },
            };

            var dal = new EntrantDal(entrantMap);

            Assert.Throws <EntrantNotFoundException>(() => dal.GetById(4));
        }
示例#8
0
        public void GetAll_Returns_ExpectEntrants()
        {
            var entrantMap = new ConcurrentDictionary <int, Entrant>
            {
                [1] = new Entrant {
                    FirstName = "firstName", LastName = "lastName", Id = 1
                },
                [2] = new Entrant {
                    FirstName = "firstName2", LastName = "lastName2", Id = 2
                },
            };

            var dal = new EntrantDal(entrantMap);

            var items = dal.GetAll();

            Assert.That(items, Is.EquivalentTo(entrantMap.Values.ToList()));
        }
示例#9
0
        public void GetById_WithValidId_ReturnsExpectedItem()
        {
            var entrantMap = new ConcurrentDictionary <int, Entrant>
            {
                [1] = new Entrant {
                    FirstName = "firstName", LastName = "lastName", Id = 1
                },
                [2] = new Entrant {
                    FirstName = "firstName2", LastName = "lastName2", Id = 2
                },
            };

            var dal = new EntrantDal(entrantMap);

            var item = dal.GetById(1);

            Assert.That(item, Is.EqualTo(entrantMap[1]));
        }
示例#10
0
        public void Delete_WithBadId_ThrowsNotFoundException()
        {
            var entrant = new Entrant {
                FirstName = "firstName", LastName = "lastName", Id = 1
            };
            var entrantMap = new ConcurrentDictionary <int, Entrant>();

            entrantMap.TryAdd(entrant.Id, entrant);

            var dal = new EntrantDal(entrantMap);

            Assert.Throws <EntrantNotFoundException>(() => dal.Delete(9));

            Assert.That(entrantMap.Count, Is.EqualTo(1));

            var firstItem = entrantMap.First().Value;

            Assert.That(firstItem.Id, Is.EqualTo(1));
        }
示例#11
0
        public void Create_WithNullEntrant_ThrowsArgumentNullException()
        {
            var dal = new EntrantDal();

            Assert.Throws <ArgumentNullException>(() => dal.Create(null));
        }