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); }
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); }
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); }
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); }