/// 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()); }
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); }
public bool IsCompatibleWithTrack(TrackAsset track) { return(TypeUtility.DoesTrackSupportMarkerType(track, m_Marker.GetType())); }