public void Create_NonExistingUser_NewInventoryItemSummaryEntityCreated()
        {
            // Arrange
            var domainDataStoreFactory = NinjectDependencyResolver.Current.Resolve <IDomainDataStoreFactory>();

            domainDataStoreFactory.GetInventoryItemSummaryDataStore().RemoveAll();
            var authenticationTokenHelper = NinjectDependencyResolver.Current.Resolve <IAuthenticationTokenHelper <ISingleSignOnToken> >();
            ISingleSignOnToken token      = authenticationTokenHelper.GetAuthenticationToken();
            var service = NinjectDependencyResolver.Current.Resolve <IInventoryItemService>();

            var parameters = new ServiceRequestWithData <ISingleSignOnToken, InventoryItemServiceCreateParameters>
            {
                AuthenticationToken = token,
                Data = new InventoryItemServiceCreateParameters {
                    name = "New Inventory Item"
                }
            };

            // Act
            DateTime start = DateTime.Now;

            service.Create(parameters);
            DateTime end = DateTime.Now;

            // Assert
            IDataStore <InventoryItemSummaryEntity>  dataStore = domainDataStoreFactory.GetInventoryItemSummaryDataStore();
            IEnumerable <InventoryItemSummaryEntity> query     = dataStore.Where(inventoryItem => !inventoryItem.IsLogicallyDeleted && inventoryItem.Name == parameters.Data.name)
                                                                 .AsEnumerable();
            InventoryItemSummaryEntity result = query.Single();

            Assert.AreEqual(parameters.Data.name, result.Name);
            Console.WriteLine("Operation took: {0}", end - start);
        }
示例#2
0
        public void CommandBusSend_NonExistingUser_NewInventoryItemSummaryEntityCreated()
        {
            // Arrange
            var domainDataStoreFactory = NinjectDependencyResolver.Current.Resolve <IDomainDataStoreFactory>();

            domainDataStoreFactory.GetInventoryItemSummaryDataStore().RemoveAll();
            var commandBus = NinjectDependencyResolver.Current.Resolve <ICommandSender <ISingleSignOnToken> >();

            var command = new CreateInventoryItemCommand(Guid.NewGuid(), "New Inventory Item");

            // Act
            DateTime start = DateTime.Now;

            commandBus.Send(command);
            DateTime end = DateTime.Now;

            // Assert
            IDataStore <InventoryItemSummaryEntity>  dataStore = domainDataStoreFactory.GetInventoryItemSummaryDataStore();
            IEnumerable <InventoryItemSummaryEntity> query     = dataStore.Where(inventoryItem => !inventoryItem.IsLogicallyDeleted && inventoryItem.Rsn == command.Rsn)
                                                                 .AsEnumerable();
            InventoryItemSummaryEntity result = query.Single();

            Assert.AreEqual(command.Rsn, result.Rsn);
            Assert.AreEqual(command.Name, result.Name);
            Console.WriteLine("Operation took: {0}", end - start);
        }
示例#3
0
        private void UpdateSummaryItem(InventoryItemCreated @event)
        {
            InventoryItemSummaryEntity inventoryItem = new InventoryItemSummaryEntity {
                Rsn = @event.Rsn, Name = @event.Name
            };

            // As this is the first event for this instance, no existing instance will exist, thus a create operation is executed
            InventoryItemSummaryRepository.Create(inventoryItem);
        }
示例#4
0
        private void DeleteSummaryItem(InventoryItemDeactivated @event)
        {
            // Define Query
            ISingleResultQuery <InventoryItemSummaryQueryStrategy, InventoryItemSummaryEntity> query = QueryFactory.CreateNewSingleResultQuery <InventoryItemSummaryQueryStrategy, InventoryItemSummaryEntity>();

            query.QueryStrategy.WithRsn(@event.Rsn);

            // Retrieve Data, but remember if no items exist, the value is null
            query = InventoryItemSummaryRepository.Retrieve(query, false);
            InventoryItemSummaryEntity inventoryItem = query.Result;

            // As a previous event will have created this instance we should throw an exception if it is not found.
            if (inventoryItem == null)
            {
                throw new NullReferenceException(string.Format("No entity was found by the id '{0}'", @event.Rsn));
            }

            InventoryItemSummaryRepository.Delete(inventoryItem);
        }