public void AddOccurrences_ValidListOfOccurrences_Added()
        {
            //Arrange
            var occurrences = new OccurrenceBuilder().BuildList();
            var service     = this.kernel.Get <WebCalendar.Services.OccurrenceService>();

            //Act
            service.AddOccurrences(occurrences);
            //Assert
            VerifyAddListOfOccurrences(Times.Exactly(occurrences.Count));
        }
        public void Create_ValidOccurrence_Created()
        {
            //Arrange
            var newOccurrence = new OccurrenceBuilder().Build();
            var service       = this.kernel.Get <WebCalendar.Services.OccurrenceService>();

            //Act
            service.Create(newOccurrence);
            //Assert
            VerifyCreateOccurrence(Times.Once());
        }
        public void Get_ValidOccurrence_ReturnOccurrence()
        {
            //Arrange
            Occurrence expected = new OccurrenceBuilder().Build();

            SetUpRepository(expected);
            var service = this.kernel.Get <WebCalendar.Services.OccurrenceService>();
            //Act
            var actual = service.Get(OCCURRENCE_ID);

            //Assert
            Assert.IsNotNull(actual);
            Assert.AreEqual(expected, actual);
        }
        public void GetOccurrences_ValidEntities_ReturnListOfOccurrences()
        {
            //Arrange
            var expected = new OccurrenceBuilder().BuildList();

            SetUpListRepository(expected);
            var service = this.kernel.Get <WebCalendar.Services.OccurrenceService>();
            //Act
            var actual = service.GetOccurrences;

            //Assert
            Assert.IsNotNull(actual);
            Assert.IsTrue(actual.Count == 1);
            CollectionAssert.AreEqual(expected, actual);
        }
        public void Update_ValidOccurrence_Updated()
        {
            //Arrange
            var occurrence = new OccurrenceBuilder().Build();

            SetUpRepository(occurrence);
            var service = this.kernel.Get <WebCalendar.Services.OccurrenceService>();

            //Act
            occurrence.Count = UPDATED_COUNT;
            service.Update(occurrence);
            var actual = service.Get(OCCURRENCE_ID);

            //Assert
            Assert.AreEqual(UPDATED_COUNT, occurrence.Count);
            Assert.AreEqual(occurrence, actual);
        }
        public void Update_ConversionExceptionForOccurrence_ExceptionThrown()
        {
            //Arrange
            Exception  exception = null;
            Occurrence occur     = new OccurrenceBuilder().Build();

            SetUpRepository();
            SetUpArgumentNullException();
            var service = this.kernel.Get <WebCalendar.Services.OccurrenceService>();

            //Act
            try
            {
                service.Update(occur);
            }
            catch (ConversionException ex) { exception = ex; }
            //Assert
            VerifyExceptionThrown(exception, ExpectedExceptionMessages.OCCURRENCE_NOT_FOUND);
        }