public void ShouldCallAddOnThePageEventRepository()
        {
            // Arrange
            var pageEvent = new PageEvent();
            _pageEventRepository.Expect(x => x.Insert(pageEvent));
            _pageEventRepository.Replay();

            // Act
            var result = _pageEventTrackingService.Add(pageEvent);

            // Assert
            Assert.That(result, Is.EqualTo(pageEvent));
            _pageEventRepository.VerifyAllExpectations();
        }
        public void ShouldCallInsertForThePageEventSentIn()
        {
            // Arrange
            var pageEvent = new PageEvent();
            var pageEventDataModel = new PageEventDataModel();
            _entityMapper.Expect(x => x.Map<PageEventDataModel>(pageEvent)).Return(pageEventDataModel);
            _mongoDbProxy.Expect(x => x.Insert(PageEventRepository.COLLECTION_NAME, new[] { pageEventDataModel }));

            _mockRepository.ReplayAll();

            // Act
            _pageEventRepository.Insert(pageEvent);

            // Assert
            _mockRepository.VerifyAll();
        }
 private BsonDocument PageEventToBsonDocument(PageEvent pageEvent)
 {
     return new BsonDocument
                {
                    {"_id", BsonObjectId.Create(pageEvent.Id), pageEvent.Id != null},
                    {"VisitGuid", pageEvent.VisitGuid},
                    {"Url", pageEvent.Url},
                    {"PageId", pageEvent.PageId},
                    {"ElementId", pageEvent.ElementId},
                    {"EventType", pageEvent.EventType},
                    {"ElementType", pageEvent.ElementType, pageEvent.ElementType != null},
                    {"X", pageEvent.X},
                    {"Y", pageEvent.Y},
                    {"ClientDateTime", pageEvent.ClientDateTime},
                    {"DateTime", pageEvent.DateTime}
                };
 }
        public void ShouldReturnJsonResult_PageEvent()
        {
            // Arrange
            var pageEventPostModel = new PageEventPostModel();
            var pageEvent = new PageEvent();

            _entityMapper.Expect(x => x.Map<PageEvent>(pageEventPostModel)).Return(pageEvent);
            _pageEventTrackingService.Expect(x => x.Add(pageEvent));

            _mockRepository.ReplayAll();

            // Act
            var jsonResult = _trackingController.PageEvent(pageEventPostModel);

            // Assert
            Assert.That(jsonResult, Is.Not.Null);
            _mockRepository.VerifyAll();
        }
 public void Insert(PageEvent pageEvent)
 {
     var pageEventDataModel = EntityMapper.Map<PageEventDataModel>(pageEvent);
     MongoDbProxy.Insert(CollectionName, new[] { pageEventDataModel });
 }
 public PageEvent Add(PageEvent pageEvent)
 {
     _pageEventRepository.Insert(pageEvent);
     return pageEvent;
 }