public void TestOpenFirstBlock() { var(_, inbox, outbox, _, c5) = Setup(); var store = new VolatileChainStore(); var chainController = new ChainController( store, inbox, outbox, lineage => { }); var request = OpenBlockRequest.From( _r1, c5, CommittedBlockId.GenesisParent); inbox.TryWrite(request.Span); chainController.HandleRequest(); var result = new OpenBlockResponse(outbox.Peek().Span); Assert.Equal(MessageKind.OpenBlockResponse, result.MessageHeader.MessageKind); Assert.Equal(_r1, result.MessageHeader.RequestId); Assert.Equal(c5, result.MessageHeader.ClientId); Assert.Equal(new BlockAlias(0, 0), result.Handle.ConvertToBlockAlias(c5.Mask)); // TODO: [vermorel] persistence unit tests should be isolated //var persister = new BlockchainPersister(TerabConfiguration.CommittedBlocksPersistencePath, // TerabConfiguration.UncommittedBlocksPersistencePath); //var newChain = persister.ReadBlockchain(); //Assert.Equal(chain.UncommittedBlockCount, newChain.UncommittedBlockCount); //Assert.Equal(chain.CommittedBlockCount, newChain.CommittedBlockCount); }
public async void Patch_No_Errors() { ChainControllerMockFacade mock = new ChainControllerMockFacade(); var mockResult = new Mock <UpdateResponse <ApiChainResponseModel> >(); mockResult.SetupGet(x => x.Success).Returns(true); mock.ServiceMock.Setup(x => x.Update(It.IsAny <int>(), It.IsAny <ApiChainRequestModel>())) .Callback <int, ApiChainRequestModel>( (id, model) => model.ChainStatusId.Should().Be(1) ) .Returns(Task.FromResult <UpdateResponse <ApiChainResponseModel> >(mockResult.Object)); mock.ServiceMock.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult <ApiChainResponseModel>(new ApiChainResponseModel())); ChainController controller = new ChainController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, new ApiChainModelMapper()); controller.ControllerContext = new ControllerContext(); controller.ControllerContext.HttpContext = new DefaultHttpContext(); var patch = new JsonPatchDocument <ApiChainRequestModel>(); patch.Replace(x => x.ChainStatusId, 1); IActionResult response = await controller.Patch(default(int), patch); response.Should().BeOfType <OkObjectResult>(); (response as OkObjectResult).StatusCode.Should().Be((int)HttpStatusCode.OK); mock.ServiceMock.Verify(x => x.Update(It.IsAny <int>(), It.IsAny <ApiChainRequestModel>())); }
public async void BulkInsert_No_Errors() { ChainControllerMockFacade mock = new ChainControllerMockFacade(); var mockResponse = new CreateResponse <ApiChainResponseModel>(new FluentValidation.Results.ValidationResult()); mockResponse.SetRecord(new ApiChainResponseModel()); mock.ServiceMock.Setup(x => x.Create(It.IsAny <ApiChainRequestModel>())).Returns(Task.FromResult <CreateResponse <ApiChainResponseModel> >(mockResponse)); ChainController controller = new ChainController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object); controller.ControllerContext = new ControllerContext(); controller.ControllerContext.HttpContext = new DefaultHttpContext(); var records = new List <ApiChainRequestModel>(); records.Add(new ApiChainRequestModel()); IActionResult response = await controller.BulkInsert(records); response.Should().BeOfType <OkObjectResult>(); (response as OkObjectResult).StatusCode.Should().Be((int)HttpStatusCode.OK); var result = (response as OkObjectResult).Value as List <ApiChainResponseModel>; result.Should().NotBeEmpty(); mock.ServiceMock.Verify(x => x.Create(It.IsAny <ApiChainRequestModel>())); }
private void Awake() { Cursor.lockState = CursorLockMode.Locked; Cursor.visible = false; _rb = GetComponent <Rigidbody2D>(); listener = Camera.main.GetComponent <AudioListener>(); mainCameraSource = Camera.main.GetComponent <AudioSource>(); _physics = new PhysicsCalculation(); _physics.CalculateGravity(stats.jumpHeight, stats.timeToApex); Physics.gravity = Vector3.zero; _rb.gravityScale = 0; yVelocity = 0; _applyPhysics = ApplyGravity; _detectFloor = DetectGroundFromGround; _groundKeys = new GroundController().SetModel(this); _airKeys = new AirController().SetModel(this); _ladderKeys = new LadderController().SetModel(this); _chainKeys = new ChainController().SetModel(this); stats.hp = stats.maxHP; _currentSpeed = stats.walkingSpeed; _checkpointPosition = transform.position; AddNewSkin(Resources.Load <Skin>("Skins/Latin_Lover_Skin")); SkillsAndValues.Add(_mySkins[0], () => { return(-1); }); if (skillJet) { AddNewSkin(Resources.Load <Skin>("Skins/Jetpack_Skin")); GameObject.Find("JET").SetActive(true); } if (skillBowser) { AddNewSkin(Resources.Load <Skin>("Skins/Bowser_Skin")); GameObject.Find("BOW").SetActive(true); } if (skillFRQ) { AddNewSkin(Resources.Load <Skin>("Skins/FusRohCuack_Skin")); GameObject.Find("FRQ").SetActive(true); } //AddNewSkin(Resources.Load<Skin>("Skins/Bowser_Skin")); //SkillsAndValues.Add(_mySkins[1], () => { return -1; }); //AddNewSkin(Resources.Load<Skin>("Skins/FusRohCuack_Skin")); //SkillsAndValues.Add(_mySkins[2], () => { return currentPointsFRC; }); //AddNewSkin(Resources.Load<Skin>("Skins/Jetpack_Skin")); //SkillsAndValues.Add(_mySkins[3], () => { return currentPointsJetPack; }); }
public void Get_last_block() { var node = new Mock <INode>(); node.SetupGet(n => n.Blockchain).Returns(blockchain); var controller = new ChainController(node.Object, new NullLogger <ChainController>()); var block = controller.GetLast(); Assert.IsNotNull(block); Assert.AreEqual(1, block.Questions.Count); Assert.AreEqual(1, block.Members.Count); }
public void Test() { var application = new FakeApplicationContext(); var blockchain = application.GetService <Blockchain>(); var controller = new ChainController(blockchain); var response = controller.Index(); var actual = ((List <Block>)response.Value).First().PreviousHash; Assert.NotNull(actual); Assert.Equal("7F83B1657FF1FC53B92DC18148A1D65DFC2D4B1FA3D677284ADDD200126D9069", actual); }
void Start() { chain = this; isReturning = false; SetState(idle); chainList = new Stack(); speed = 0f; isStuck = false; isChaining = false; wasClimbing = false; LastPos = new Vector2(); PlatformSpeed = new Vector2(); rgdBdy = GetComponent <Rigidbody2D>(); lastPosList = new List <float>(); audio = GetComponent <AudioSource>(); }
public async void Get_Not_Exists() { ChainControllerMockFacade mock = new ChainControllerMockFacade(); mock.ServiceMock.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult <ApiChainResponseModel>(null)); ChainController controller = new ChainController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object); controller.ControllerContext = new ControllerContext(); controller.ControllerContext.HttpContext = new DefaultHttpContext(); IActionResult response = await controller.Get(default(int)); response.Should().BeOfType <StatusCodeResult>(); (response as StatusCodeResult).StatusCode.Should().Be((int)HttpStatusCode.NotFound); mock.ServiceMock.Verify(x => x.Get(It.IsAny <int>())); }
public void Get_block() { var node = new Mock <INode>(); node.SetupGet(n => n.Blockchain).Returns(blockchain); var controller = new ChainController(node.Object, new NullLogger <ChainController>()); var response = controller.Get(Base58.Encode(block1Hash)); Assert.AreEqual(200, response.StatusCode); var block = (Block)response.Value; Assert.IsNotNull(block); Assert.AreEqual(1, block.Questions.Count); Assert.AreEqual(1, block.Members.Count); }
public async void Delete_Errors() { ChainControllerMockFacade mock = new ChainControllerMockFacade(); var mockResult = new Mock <ActionResponse>(); mockResult.SetupGet(x => x.Success).Returns(false); mock.ServiceMock.Setup(x => x.Delete(It.IsAny <int>())).Returns(Task.FromResult <ActionResponse>(mockResult.Object)); ChainController controller = new ChainController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object); controller.ControllerContext = new ControllerContext(); controller.ControllerContext.HttpContext = new DefaultHttpContext(); IActionResult response = await controller.Delete(default(int)); response.Should().BeOfType <ObjectResult>(); (response as ObjectResult).StatusCode.Should().Be((int)HttpStatusCode.UnprocessableEntity); mock.ServiceMock.Verify(x => x.Delete(It.IsAny <int>())); }
public void Setup() { var dispatchInbox = new BoundedInbox(); var chainInbox = new BoundedInbox(); var coinInboxes = new BoundedInbox[ShardCount]; for (var i = 0; i < coinInboxes.Length; i++) { coinInboxes[i] = new BoundedInbox(); } _dispatcher = new DispatchController( dispatchInbox, chainInbox, coinInboxes, new IdentityHash()); // Configure the wake-up callbacks to do nothing. _dispatcher.OnBlockMessageDispatched = () => { }; for (var i = 0; i < _dispatcher.OnCoinMessageDispatched.Length; i++) { _dispatcher.OnCoinMessageDispatched[i] = () => { } } ; _store = new VolatileChainStore(); _chainController = new ChainController( _store, chainInbox, dispatchInbox, lineage => { }); var c1 = ClientId.Next(); _clientConn = new ConnectionController(dispatchInbox, _socket, c1); _handleMask = c1.Mask; _dispatcher.AddConnection(_clientConn); _dispatcher.OnConnectionAccepted = _ => { }; _dispatcher.HandleNewConnection(); _c0 = new ClientId(0); }
public async void Update_NotFound() { ChainControllerMockFacade mock = new ChainControllerMockFacade(); var mockResult = new Mock <UpdateResponse <ApiChainResponseModel> >(); mockResult.SetupGet(x => x.Success).Returns(false); mock.ServiceMock.Setup(x => x.Update(It.IsAny <int>(), It.IsAny <ApiChainRequestModel>())).Returns(Task.FromResult <UpdateResponse <ApiChainResponseModel> >(mockResult.Object)); mock.ServiceMock.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult <ApiChainResponseModel>(null)); ChainController controller = new ChainController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, new ApiChainModelMapper()); controller.ControllerContext = new ControllerContext(); controller.ControllerContext.HttpContext = new DefaultHttpContext(); IActionResult response = await controller.Update(default(int), new ApiChainRequestModel()); response.Should().BeOfType <StatusCodeResult>(); (response as StatusCodeResult).StatusCode.Should().Be((int)HttpStatusCode.NotFound); mock.ServiceMock.Verify(x => x.Get(It.IsAny <int>())); }
public async void Get_Exists() { ChainControllerMockFacade mock = new ChainControllerMockFacade(); mock.ServiceMock.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult(new ApiChainServerResponseModel())); ChainController controller = new ChainController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object); controller.ControllerContext = new ControllerContext(); controller.ControllerContext.HttpContext = new DefaultHttpContext(); IActionResult response = await controller.Get(default(int)); response.Should().BeOfType <OkObjectResult>(); (response as OkObjectResult).StatusCode.Should().Be((int)HttpStatusCode.OK); var record = (response as OkObjectResult).Value as ApiChainServerResponseModel; record.Should().NotBeNull(); mock.ServiceMock.Verify(x => x.Get(It.IsAny <int>())); }
public async void All_Not_Exists() { ChainControllerMockFacade mock = new ChainControllerMockFacade(); mock.ServiceMock.Setup(x => x.All(It.IsAny <int>(), It.IsAny <int>())).Returns(Task.FromResult <List <ApiChainResponseModel> >(new List <ApiChainResponseModel>())); ChainController controller = new ChainController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object); controller.ControllerContext = new ControllerContext(); controller.ControllerContext.HttpContext = new DefaultHttpContext(); IActionResult response = await controller.All(1000, 0); response.Should().BeOfType <OkObjectResult>(); (response as OkObjectResult).StatusCode.Should().Be((int)HttpStatusCode.OK); var items = (response as OkObjectResult).Value as List <ApiChainResponseModel>; items.Should().BeEmpty(); mock.ServiceMock.Verify(x => x.All(It.IsAny <int>(), It.IsAny <int>())); }
public SchemaVisualizer(Gtk.DrawingArea canvas) { this.canvas = canvas; canvas.AddEvents((int)Gdk.EventMask.ButtonPressMask); canvas.AddEvents((int)Gdk.EventMask.ButtonReleaseMask); canvas.AddEvents((int)Gdk.EventMask.PointerMotionMask); canvas.ButtonPressEvent += HandleDrawingArea1ButtonPressEvent; canvas.ButtonReleaseEvent += HandleDrawingArea1ButtonReleaseEvent; canvas.KeyPressEvent += HandleKeyPressEvent; canvas.KeyReleaseEvent += HandleKeyReleaseEvent; canvas.ExposeEvent += HandleDrawingArea1ExposeEvent; canvas.ConfigureEvent += HandleConfigureEvent; canvas.MotionNotifyEvent += HandleDrawingArea1MotionNotifyEvent; model.RegisterSubModel <ShapesModel>(scene); model.RegisterSubModel <SelectionModel>(selection); model.RegisterSubModel <InteractionStateModel>(interaction); model.ModelChanged += HandleModelChanged; view.Viewers.Add(typeof(SolidV.MVC.Model), new ModelViewer <Context>()); view.Viewers.Add(typeof(ShapesModel), new ShapeModelViewer()); view.Viewers.Add(typeof(RectangleShape), new RectangleShapeViewer()); view.Viewers.Add(typeof(EllipseShape), new EllipseShapeViewer()); view.Viewers.Add(typeof(ArrowShape), new ArrowShapeViewer()); view.Viewers.Add(typeof(TextBlockShape), new TextBlockShapeViewer()); view.Viewers.Add(typeof(SelectionModel), new SelectionModelViewer()); view.Viewers.Add(typeof(Glue), new GlueViewer()); view.Viewers.Add(typeof(InteractionStateModel), new InteractionStateModelViewer()); controller.SubControllers.Add(new ShapeSelectionController(model, view)); ChainController <Gdk.Event, Context, SolidV.MVC.Model> cc = new ChainController <Gdk.Event, Context, SolidV.MVC.Model>(); cc.SubControllers.Add(new ConnectorDragController(model, view)); cc.SubControllers.Add(new ShapeDragController(model, view)); controller.SubControllers.Add(cc); }
public async void Create_Errors() { ChainControllerMockFacade mock = new ChainControllerMockFacade(); var mockResponse = new Mock <CreateResponse <ApiChainResponseModel> >(new FluentValidation.Results.ValidationResult()); var mockRecord = new ApiChainResponseModel(); mockResponse.SetupGet(x => x.Success).Returns(false); mock.ServiceMock.Setup(x => x.Create(It.IsAny <ApiChainRequestModel>())).Returns(Task.FromResult <CreateResponse <ApiChainResponseModel> >(mockResponse.Object)); ChainController controller = new ChainController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object); controller.ControllerContext = new ControllerContext(); controller.ControllerContext.HttpContext = new DefaultHttpContext(); IActionResult response = await controller.Create(new ApiChainRequestModel()); response.Should().BeOfType <ObjectResult>(); (response as ObjectResult).StatusCode.Should().Be((int)HttpStatusCode.UnprocessableEntity); mock.ServiceMock.Verify(x => x.Create(It.IsAny <ApiChainRequestModel>())); }
public async void Patch_Record_Not_Found() { ChainControllerMockFacade mock = new ChainControllerMockFacade(); var mockResult = new Mock <ActionResponse>(); mock.ServiceMock.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult <ApiChainResponseModel>(null)); ChainController controller = new ChainController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object); controller.ControllerContext = new ControllerContext(); controller.ControllerContext.HttpContext = new DefaultHttpContext(); var patch = new JsonPatchDocument <ApiChainRequestModel>(); patch.Replace(x => x.ChainStatusId, 1); IActionResult response = await controller.Patch(default(int), patch); response.Should().BeOfType <StatusCodeResult>(); (response as StatusCodeResult).StatusCode.Should().Be((int)HttpStatusCode.NotFound); mock.ServiceMock.Verify(x => x.Get(It.IsAny <int>())); }
public async void Create_No_Errors() { ChainControllerMockFacade mock = new ChainControllerMockFacade(); var mockResponse = ValidationResponseFactory <ApiChainServerResponseModel> .CreateResponse(null as ApiChainServerResponseModel); mockResponse.SetRecord(new ApiChainServerResponseModel()); mock.ServiceMock.Setup(x => x.Create(It.IsAny <ApiChainServerRequestModel>())).Returns(Task.FromResult <CreateResponse <ApiChainServerResponseModel> >(mockResponse)); ChainController controller = new ChainController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object); controller.ControllerContext = new ControllerContext(); controller.ControllerContext.HttpContext = new DefaultHttpContext(); IActionResult response = await controller.Create(new ApiChainServerRequestModel()); response.Should().BeOfType <CreatedResult>(); (response as CreatedResult).StatusCode.Should().Be((int)HttpStatusCode.Created); var createResponse = (response as CreatedResult).Value as CreateResponse <ApiChainServerResponseModel>; createResponse.Record.Should().NotBeNull(); mock.ServiceMock.Verify(x => x.Create(It.IsAny <ApiChainServerRequestModel>())); }
public void Send_block_512() { using (var loggerFactory = CreateLoggerFactory()) { var node = new Mock <INode>(); var controller = new ChainController(node.Object, loggerFactory.CreateLogger <ChainController>()); var previousHash = new byte[] { 0, 0, 0, 0 }; var block = new Block(previousHash, 0); var path = Path.Combine(WorkingFolder, "files", "Lorem-Ipsum-512.txt"); Assert.IsTrue(File.Exists(path)); var content = File.ReadAllText(path); Assert.AreEqual(512, content.Length); block.Documents.Add(new Document(content)); var response = controller.Post(block); Assert.AreEqual((int)HttpStatusCode.Accepted, response.StatusCode); node.Verify(n => n.Add(It.IsAny <Block>()), Times.Once); } }
// Token: 0x06001E7C RID: 7804 RVA: 0x0008390C File Offset: 0x00081B0C private void Update() { this.timer += Time.deltaTime; this.nextSpawnTimer += Time.deltaTime; if (this.timer >= this.duration) { UnityEngine.Object.Destroy(base.gameObject); } if (this.nextSpawnTimer >= this.duration / (float)this.count) { this.nextSpawnTimer -= this.duration / (float)this.count; GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(this.childProjectilePrefab, base.transform.position, Util.QuaternionSafeLookRotation(base.transform.forward)); ProjectileController component = gameObject.GetComponent <ProjectileController>(); if (component) { component.procChainMask = this.projectileController.procChainMask; component.procCoefficient = this.projectileController.procCoefficient * this.childProcCoefficient; component.Networkowner = this.projectileController.owner; } gameObject.GetComponent <TeamFilter>().teamIndex = base.GetComponent <TeamFilter>().teamIndex; ProjectileDamage component2 = gameObject.GetComponent <ProjectileDamage>(); if (component2) { component2.damage = this.projectileDamage.damage * this.childDamageCoefficient; component2.crit = this.projectileDamage.crit; component2.force = this.projectileDamage.force; component2.damageColorIndex = this.projectileDamage.damageColorIndex; } if (!this.ignoreParentForChainController) { ChainController component3 = gameObject.GetComponent <ChainController>(); if (component3) { component3.pastTargetList.Add(base.transform.parent); } } NetworkServer.Spawn(gameObject); } }
/// <summary> /// Shoot the specified start and target. /// </summary> /// <param name="chainsHolder">chain objects holder</param> /// <param name="start">Start location where the silk is shoot </param> /// <param name="target">The target location that the silk finally hangs on</param> /// <returns>true if silking succeeeded, false otherwise</returns> public bool Shoot(GameObject chainsHolder, Transform start, Transform target, int chainsNumber, Material silkMaterial) { _savedChainsHolder = chainsHolder; Vector2 startPos = start.position; Vector2 targetPos = target.position; float distance = Vector2.Distance(startPos, targetPos); if (distance < 0.1f) { Debug.LogWarning("too close to shoot a silk"); return(false); } _lineRenderer = chainsHolder.GetComponent <LineRenderer> (); if (!_lineRenderer) { _lineRenderer = chainsHolder.AddComponent <LineRenderer> (); } float chainLength = distance / chainsNumber; Debug.Log("chain length: " + chainLength); Vector2 chainBoxColliderSize = new Vector2(chainLength, _lineWidth); float angle = Utils.AngleFromX(start.position - target.position); float angleRadian = angle * Mathf.Deg2Rad; Vector2 chainOffset = new Vector2(chainLength * Mathf.Cos(angleRadian), chainLength * Mathf.Sin(angleRadian)); Vector2 currentPos = targetPos + 0.5f * chainOffset; Quaternion rotation = Quaternion.AngleAxis(angle, Vector3.forward); // chain objects in reverse order for (int i = 0; i < chainsNumber; i++) { GameObject obj = new GameObject("Chain" + i); ChainController chainController = obj.AddComponent <ChainController>(); chainController.SetSilk(this); Rigidbody2D rb2D = obj.AddComponent <Rigidbody2D>(); //rb2D.mass = 1f; BoxCollider2D box = obj.AddComponent <BoxCollider2D>(); box.size = chainBoxColliderSize; HingeJoint2D joint = obj.AddComponent <HingeJoint2D>(); if (i == 0) { // joint.anchor is always in its local space joint.anchor = new Vector2(-0.5f * chainLength, 0); // joint.connectedAnchor in world space since not connected to other // rigidbody for the first hinge joint.connectedAnchor = targetPos; } else { // connect to parent rigid body if not the first chain joint.connectedBody = _chains[i - 1].GetComponent <Rigidbody2D>(); // joint.anchor is always in my own local space joint.anchor = new Vector2(-0.5f * chainLength, 0); // joint.connectedBody now in other object’s local space joint.connectedAnchor = new Vector2(0.5f * chainLength, 0); } obj.transform.SetParent(chainsHolder.transform); obj.transform.position = currentPos; obj.transform.rotation = rotation; obj.transform.localScale = Vector3.one; _chains.Add(obj); currentPos += chainOffset; } _lineRenderer.SetVertexCount(chainsNumber); _lineRenderer.SetWidth(_lineWidth, _lineWidth); _lineRenderer.material = silkMaterial; for (int i = 0; i < chainsNumber; i++) { _lineRenderer.SetPosition(i, _chains[i].transform.position); } _state = State.Completed; return(true); }
public (IChainStore, BoundedInbox, BoundedInbox, ChainController, ClientId) Setup(int pruneLimit = 100) { var store = new VolatileChainStore(); store.BlockPruneLimitDistance = pruneLimit; Assert.Equal(OpenBlockStatus.Success, store.TryOpenBlock(CommittedBlockId.GenesisParent, out var openedBlock)); var id = openedBlock.Alias; Assert.NotEqual(BlockAlias.GenesisParent, id); Assert.Equal(CommitBlockStatus.Success, store.TryCommitBlock(id, CommittedBlockId.Genesis, out _)); // C(0) Assert.Equal(OpenBlockStatus.Success, store.TryOpenBlock(CommittedBlockId.Genesis, out var cb1)); Assert.Equal(_1, cb1.Alias); Assert.Equal(CommitBlockStatus.Success, store.TryCommitBlock(cb1.Alias, _id_1, out _)); // C(0) -> C(1) Assert.Equal(OpenBlockStatus.Success, store.TryOpenBlock(_id_1, out var cb2)); Assert.Equal(_2, cb2.Alias); Assert.Equal(CommitBlockStatus.Success, store.TryCommitBlock(cb2.Alias, _id_2, out _)); // C(0) -> C(1) -> C(2) // Second child for block 2 Assert.Equal(OpenBlockStatus.Success, store.TryOpenBlock(_id_1, out var cb3)); Assert.Equal(_2_1, cb3.Alias); Assert.Equal(CommitBlockStatus.Success, store.TryCommitBlock(cb3.Alias, _id_2_1, out _)); // C(0) -> C(1) -> C(2) // \-> C(2-1) // main chain prolonged Assert.Equal(OpenBlockStatus.Success, store.TryOpenBlock(_id_2, out var cb4)); Assert.Equal(_3, cb4.Alias); Assert.Equal(CommitBlockStatus.Success, store.TryCommitBlock(cb4.Alias, _id_3, out _)); // C(0) -> C(1) -> C(2) -> C(3) // \-> C(2-1) // side chain prolonged Assert.Equal(OpenBlockStatus.Success, store.TryOpenBlock(_id_2_1, out var cb5)); // the new assert Assert.Equal(_3_1, cb5.Alias); // the new assert Assert.Equal(CommitBlockStatus.Success, store.TryCommitBlock(cb5.Alias, _id_3_1, out _)); // C(0) -> C(1) -> C(2) -> C(3) // \-> C(2-1) -> C(3-1) // fork on end of main chain Assert.Equal(OpenBlockStatus.Success, store.TryOpenBlock(_id_3, out var cb6)); Assert.Equal(_4_0, cb6.Alias); Assert.Equal(CommitBlockStatus.Success, store.TryCommitBlock(cb6.Alias, _id_4_0, out _)); Assert.Equal(OpenBlockStatus.Success, store.TryOpenBlock(_id_3, out var cb7)); Assert.Equal(_4_1, cb7.Alias); Assert.Equal(CommitBlockStatus.Success, store.TryCommitBlock(cb7.Alias, _id_4_1, out _)); // C(0) -> C(1) -> C(2) -> C(3) -> C(4) // | \-> C(4-1) // \-> C(2-1) -> C(3-1) var inbox = new BoundedInbox(); var outbox = new BoundedInbox(); var chainController = new ChainController( store, inbox, outbox, lineage => { }); ClientId.Next(); ClientId.Next(); ClientId.Next(); ClientId.Next(); var c5 = ClientId.Next(); return(store, inbox, outbox, chainController, c5); }
void IPlugin.Init(object context) { solidIDE = context as ISolidIDE; mainWindow = solidIDE.GetMainWindow(); // Notebook noteBook = new Gtk.Notebook(); designerDockItem = mainWindow.DockFrame.AddItem("Designer"); designerDockItem.Behavior = DockItemBehavior.CantAutoHide | DockItemBehavior.CantClose | DockItemBehavior.NeverFloating; designerDockItem.Expand = true; designerDockItem.DrawFrame = true; designerDockItem.Label = "Designer"; designerDockItem.Content = noteBook; designerDockItem.DefaultVisible = true; designerDockItem.Visible = true; // Menu var fileMenuItem = solidIDE.GetMenuItem <Gtk.ImageMenuItem>("File"); var saveMenuItem = solidIDE.GetMenuItem <Gtk.ImageMenuItem>("File", "Save"); saveMenuItem.Activated += HandleSaveActivated; var viewMenuItem = solidIDE.GetMenuItem <Gtk.ImageMenuItem>("View"); var designerMenuItem = solidIDE.GetMenuItem <Gtk.ImageMenuItem>("View", "Designer"); designerMenuItem.Activated += HandleShowDesignerActivated; // Test var model = new Model(); ShapesModel scene = new ShapesModel(); SelectionModel selection = new SelectionModel(); InteractionStateModel interaction = new InteractionStateModel(); var view = new View <Cairo.Context, Model>(); controller = new CompositeController <Gdk.Event, Cairo.Context, Model>(); model.RegisterSubModel <ShapesModel>(scene); model.RegisterSubModel <SelectionModel>(selection); model.RegisterSubModel <InteractionStateModel>(interaction); model.ModelChanged += HandleModelChanged; //TODO: Scan plugins for shapes and viewers view.Viewers.Add(typeof(Model), new ModelViewer <Cairo.Context>()); view.Viewers.Add(typeof(ShapesModel), new ShapeModelViewer()); view.Viewers.Add(typeof(RectangleShape), new RectangleShapeViewer()); view.Viewers.Add(typeof(EllipseShape), new EllipseShapeViewer()); view.Viewers.Add(typeof(ArrowShape), new ArrowShapeViewer()); view.Viewers.Add(typeof(BezierCurvedArrowShape), new BezierCurvedArrowShapeViewer()); view.Viewers.Add(typeof(TextBlockShape), new TextBlockShapeViewer()); view.Viewers.Add(typeof(SelectionModel), new SelectionModelViewer()); view.Viewers.Add(typeof(Glue), new GlueViewer()); view.Viewers.Add(typeof(InteractionStateModel), new InteractionStateModelViewer()); view.Viewers.Add(typeof(FocusRectangleShape), new FocusRectangleShapeViewer()); //scene.Shapes.Add(new RectangleShape(new Rectangle(0,0,100,50))); controller.SubControllers.Add(new ShapeSelectionController(model, view)); chainController = new ChainController <Gdk.Event, Cairo.Context, Model>(); chainController.SubControllers.Add(new ConnectorDragController(model, view)); chainController.SubControllers.Add(new ShapeDragController(model, view)); controller.SubControllers.Add(chainController); IDesigner designer = this; designer.AddSheet("Sheet", new Sheet <Gdk.Event, Cairo.Context, Model>(model, view, controller)); }
private void Awake() { mainCamera = Camera.main; chainCtrl = GetComponent <ChainController>(); }
void Awake() { chainController = new ChainController(this); }
private void Start() { auxRb = GameObject.Find("GameObject").GetComponent <Rigidbody>(); cc = GameObject.Find("Controller").GetComponent <ChainController>(); }