Beispiel #1
0
        /// Adds a specified Marker to the tile.
        /// </summary>
        /// <param name="type">The type of Marker to add.</param>
        public void AddMarker(IMarker marker)
        {
            if ((!markers.Any() && defaultTerrainType.Equals(TerrainType.Blocking)) ||
                markers.Any() && markers.Peek().GetTerrainType.Equals(TerrainType.Blocking))
            {
                if (!marker.GetType().Equals(typeof(ClearMarker)) && !marker.GetType().Equals(typeof(DebrisMarker)))
                {
                    throw new InvalidOperationException("A " + marker.GetName() + " marker cannot be placed on Blocking terrain.");
                }
            }

            markers.Push(marker);
        }
        public void Create_Valid_Rendering_With_Guid_Datasource()
        {
            //Arrange
            string providedDataSource = Guid.NewGuid().ToString();
            string expectedDataSource = "Not a Guid";
            Mock <IGetDataSourceQuery> mockGetDataSourceQuery = new Mock <IGetDataSourceQuery>();

            mockGetDataSourceQuery.Setup(i => i.GetDataSourceItemPath(It.IsAny <Guid>())).Returns(expectedDataSource);
            IGetDataSourceQuery    providedGetDataSourceQuery     = mockGetDataSourceQuery.Object;
            RenderingMarkerFactory providedRenderingMarkerFactory = new RenderingMarkerFactory(providedGetDataSourceQuery);
            Rendering providedRendering = new Rendering();

            providedRendering.DataSource = providedDataSource;
            ViewRenderer providedRenderer = new ViewRenderer();

            providedRenderer.ViewPath  = "this.cshtml";
            providedRendering.Renderer = providedRenderer;
            Type   expectedType          = typeof(AnnotatableRenderingXMLElementMarker);
            string expectedRenderingName = $"View: {providedRenderer.ViewPath}";
            string expectedStartString   = $"<rendering data-rendering-name=\"{expectedRenderingName}\" data-data-source=\"{expectedDataSource}\">";

            //Act
            IMarker actualRenderingMarker = providedRenderingMarkerFactory.Create(providedRendering);

            //Assert
            Assert.AreEqual(expectedType, actualRenderingMarker.GetType());
            Assert.AreEqual(expectedStartString, actualRenderingMarker.GetStart());
        }
        public void Create_Valid_ControllerRendering()
        {
            //Arrange
            string providedDataSource = "thisDataSource";
            Mock <IGetDataSourceQuery> mockGetDataSourceQuery = new Mock <IGetDataSourceQuery>();

            mockGetDataSourceQuery.Setup(i => i.GetDataSourceItemPath(It.IsAny <Guid>())).Returns(providedDataSource);
            IGetDataSourceQuery    providedGetDataSourceQuery     = mockGetDataSourceQuery.Object;
            RenderingMarkerFactory providedRenderingMarkerFactory = new RenderingMarkerFactory(providedGetDataSourceQuery);
            Rendering providedRendering = new Rendering();

            providedRendering.DataSource = providedDataSource;
            ControllerRenderer providedRenderer = new ControllerRenderer();

            providedRenderer.ControllerName = "thisController";
            providedRenderer.ActionName     = "thisAction";
            providedRendering.Renderer      = providedRenderer;
            Type   expectedType          = typeof(AnnotatableRenderingXMLElementMarker);
            string expectedRenderingName = $"Controller: {providedRenderer.ControllerName}. Action: {providedRenderer.ActionName}";
            string expectedStartString   = $"<rendering data-rendering-name=\"{expectedRenderingName}\" data-data-source=\"{providedRendering.DataSource}\">";

            //Act
            IMarker actualRenderingMarker = providedRenderingMarkerFactory.Create(providedRendering);

            //Assert
            Assert.AreEqual(expectedType, actualRenderingMarker.GetType());
            Assert.AreEqual(expectedStartString, actualRenderingMarker.GetStart());
        }
 public static MarkerEditor GetMarkerEditor(IMarker marker)
 {
     if (marker == null)
     {
         throw new ArgumentNullException(nameof(marker));
     }
     return(GetEditorForType <MarkerEditor, IMarker>(marker.GetType()));
 }
    public IData Create(IMarker marker)
    {
        //lookup dictionary instead of if/switch
        //func ensures instance is only created when required
        var lookup = new Dictionary <Type, Func <DataFactoryBase> >()
        {
            { typeof(MarkerA), () => new DataAFactory() },
            { typeof(MarkerB), () => new DataBFactory() },
        };

        //get factory by type and call constructor
        return(lookup[marker.GetType()]().Create());
    }
Beispiel #6
0
        public TimelineMarkerGUI(IMarker theMarker, IRowGUI parent, IZOrderProvider provider) : base(parent)
        {
            marker       = theMarker;
            m_Selectable = marker.GetType().IsSubclassOf(typeof(UnityObject));

            m_MarkerHash = 0;
            var o = marker as object;

            if (!o.Equals(null))
            {
                m_MarkerHash = o.GetHashCode();
            }

            zOrderProvider = provider;
            zOrder         = zOrderProvider.Next();
            ItemToItemGui.Add(marker, this);
        }
Beispiel #7
0
 public bool IsCompatibleWithTrack(TrackAsset track)
 {
     return(TypeUtility.DoesTrackSupportMarkerType(track, m_Marker.GetType()));
 }