Пример #1
0
		public void Setup()
		{

			_testCommand = A.Fake<ICommand>();
			_publisher = A.Fake<IPublisher>();
			_compositeApp = A.Fake<ICompositeApp>();
			_registry = A.Fake<ICommandRegistry>();
			_formatter = A.Fake<IResponseFormatter>();
			_publicationRecord = A.Fake<ICommandPublicationRecord>();
			_jsonSerializer = new DefaultJsonSerializer();
			_xmlSerializer = new DefaultXmlSerializer();

			A.CallTo(() => _testCommand.Created).Returns(DateTime.MaxValue);
			A.CallTo(() => _testCommand.CreatedBy).Returns(new Guid("ba5f18dc-e287-4d9e-ae71-c6989b10d778"));
			A.CallTo(() => _testCommand.Identifier).Returns(new Guid("ba5f18dc-e287-4d9e-ae71-c6989b10d778"));
			A.CallTo(() => _formatter.Serializers).Returns(new List<ISerializer> { _jsonSerializer, _xmlSerializer });
			A.CallTo(() => _publicationRecord.Dispatched).Returns(true);
			A.CallTo(() => _publicationRecord.Error).Returns(false);
			A.CallTo(() => _publicationRecord.Completed).Returns(true);
			A.CallTo(() => _publicationRecord.Created).Returns(DateTime.MinValue);
			A.CallTo(() => _publicationRecord.MessageLocation).Returns(new Uri("http://localhost/fake/message"));
			A.CallTo(() => _publicationRecord.MessageType).Returns(typeof(IPublicationRecord));
			A.CallTo(() => _publicationRecord.CreatedBy).Returns(Guid.Empty);
			A.CallTo(() => _compositeApp.GetCommandForInputModel(A.Dummy<IInputModel>())).Returns(_testCommand);
			A.CallTo(() => _publisher.PublishMessage(A.Fake<ICommand>())).Returns(_publicationId);
			A.CallTo(() => _registry.GetPublicationRecord(_publicationId)).Returns(_publicationRecord);

			_euclidApi = new ApiModule(_compositeApp, _registry, _publisher);
		}
Пример #2
0
		public ApiModule(ICompositeApp compositeApp, ICommandRegistry registry, IPublisher publisher)
			: base(BaseRoute)
		{
			_compositeApp = compositeApp;
			_registry = registry;
			_publisher = publisher;

			Get[string.Empty] = _ => GetComposite();

			Get[AgentMetadataRoute] = p => GetAgent(stripExtension((string)p.agentSystemName));

			Get[ReadModelMetadataRoute] = p => GetReadModel((string)p.agentSystemName, stripExtension((string)p.readModelName));

			Get[InputModelMetadataRoute] = p => GetInputModel(stripExtension((string)p.inputModelName));

			Get[PublicationRecordRoute] = p => GetPublicationRecord((Guid)p.identifier);

			Get[InputModelMetadataForCommandRoute] = p => GetInputModelMetadata(stripExtension((string)p.commandName));

			Get[CommandMetadataRoute] = p => GetCommandMetadata(stripExtension((string)p.commandName));

			Get[QueryMetadataRoute] = p => GetQueryMetadata(stripExtension((string)p.queryName));

			Get[CommandIsSupportedRoute] = p => GetCommandIsSupported(stripExtension((string)p.commandName));

			Get[QueryForReadModelRoute] = p => QueryForReadmodel((string)p.queryName, (string)p.methodName);

			Get[QueryMethodRoute] = p => GetQueryMethod((string) p.queryName, (string) p.methodName);

			Post[PublishCommandRoute] = p => PublishCommand(this.Bind<IInputModel>());
		}
Пример #3
0
		public void InstallComposite(ICompositeApp composite)
		{
			this.WriteDebugMessage(string.Format("Installing composite {0}.", composite.GetType().FullName));

			if (Composite != null)
			{
				throw new CompositeAlreadyInstalledException();
			}

			if (composite.State != CompositeApplicationState.Configured)
			{
				throw new CompositeNotConfiguredException();
			}

			Composite = composite;

			Container.Register(
				Component.For(typeof(ISimpleRepository<>)).ImplementedBy(typeof(NhSimpleRepository<>)).LifeStyle.Transient);

			extractProcessorsFromAgents();

			this.WriteInfoMessage(string.Format("Installed composite {0}.", composite.GetType().Name));
		}
Пример #4
0
		public UniqueValueAttribute(string queryName, string methodName)
		{
			_compositeApp = DependencyResolver.Current.GetService<ICompositeApp>();
			_queryName = queryName;
			_methodName = methodName;

			var query = _compositeApp
				.Queries
				.Where(q => q.Name.Equals(_queryName, StringComparison.InvariantCultureIgnoreCase))
				.FirstOrDefault();
			if (query == null)
			{
				throw new QueryNotFoundInCompositeException(queryName);
			}

			var method =
				query.Type.GetMethods().Where(m => m.Name.Equals(_methodName, StringComparison.InvariantCulture) && m.GetParameters().Count() == 1).FirstOrDefault();
			if (method == null)
			{
				throw new MissingMethodException(methodName);
			}

			_argumentName = method.GetParameters()[0].Name;
		}
Пример #5
0
 public CompositeController(ICompositeApp compositeApp)
 {
     _compositeApp = compositeApp ?? throw new ArgumentNullException(nameof(compositeApp));
 }
Пример #6
0
		public InputModelBinder(ICompositeApp composite)
		{
			_composite = composite;
		}
Пример #7
0
 public CompositeService(ICompositeApp compositeApp)
 {
     _compositeLog = compositeApp.Log;
 }
Пример #8
0
 public LogController(ICompositeApp compositeApp)
 {
     _compositeApp = compositeApp;
 }
Пример #9
0
		public InputModelBinder(ICompositeApp compositeApp, IWindsorContainer container)
		{
			_compositeApp = compositeApp;
			_container = container;
		}
Пример #10
0
 public CompositeController(ICompositeApp compositeApp, IMessagingService messaging)
 {
     _compositeApp = compositeApp ?? throw new ArgumentNullException(nameof(compositeApp));
     _messaging    = messaging;
 }
Пример #11
0
		public AgentsController(ICompositeApp composite, IPublisher commandPublisher, IInputModelTransfomerRegistry transformer)
		{
			_composite = composite;
			_commandPublisher = commandPublisher;
			_transformer = transformer;
		}
Пример #12
0
 public ValidationService(ICompositeApp compositeApp)
 {
     _compositeApp = compositeApp ?? throw new ArgumentNullException(nameof(compositeApp));
 }