Example #1
0
        public void GetReference_DoesNotExist_ReturnsNull()
        {
            // Arrange
            var sourceComponentType = "ST";
            var sourceKey           = "source-1";
            var sourceId            = "source-id-1";
            var targetComponentType = "TT";
            var targetKey           = "target-2";
            var targetId            = "target-id-2";

            var relationType = "my-rel";

            var componentModel = "my-comp-model";
            var workspace      = new Workspace("MyWorkspace", null)
            {
                Id             = "454923f0-b1b0-48b3-9015-251dad9b4cea",
                ComponentModel = componentModel
            };

            var internalmodel = new global::Ardoq.Models.Model(
                "model-id",
                "MyModel",
                null,
                null,
                new Dictionary <string, int> {
                ["my-rel"] = 1
            });
            IArdoqModel model = new ArdoqModel(internalmodel);

            _readerMock.Setup(r => r.GetWorkspaceById(workspace.Id))
            .Returns(Task.FromResult(workspace));
            _readerMock.Setup(r => r.GetModelById(componentModel))
            .Returns(Task.FromResult(model));

            var sourceComponent = new Component(sourceKey, workspace.Id, null)
            {
                Type = sourceComponentType, Id = sourceId
            };
            var targetComponent = new Component(targetKey, workspace.Id, null)
            {
                Type = targetComponentType, Id = targetId
            };

            _readerMock.Setup(r => r.GetAllComponents(workspace.Id))
            .Returns(Task.FromResult <IEnumerable <Component> >(new List <Component> {
                sourceComponent, targetComponent
            }));

            _readerMock.Setup(r => r.GetReferencesById(workspace.Id))
            .Returns(Task.FromResult(new List <Reference>()));
            var session = new ArdoqSession(workspace.Id, _readerMock.Object, _writerMock.Object);

            // Act
            var relation = session.GetReference(relationType, sourceComponentType, sourceKey, targetComponentType, targetKey);

            // Assert
            Assert.Null(relation);
        }