Beispiel #1
0
        public void AfterCreateArtefact_MyPeersKnowIHaveIt()
        {
            Interconnect(MyActor, OtherActor);
            var artefact = MyActor.CreateArtefact(Artefact.Name);

            Assert.True(OtherAccount.GetPeer(MyId).HasArtefact(artefact.Id));
        }
Beispiel #2
0
    public static void Initialize(MenuFormController menuFormPrefab)
    {
        //AccountInfo = DataModel.AccountInfo;

        OtherAccount friend = new OtherAccount()
        {
            Nickname  = "Boss",
            Level     = 2,
            Id        = 0,
            Losses    = 55,
            Victories = 1,
            Clan      = new OtherClan()
            {
                Id = 3, Name = "TopClan"
            }
        };
        OtherAccount friend2 = new OtherAccount()
        {
            Nickname  = "Boss2",
            Level     = 2,
            Id        = 2,
            Losses    = 55,
            Victories = 1,
            Clan      = new OtherClan()
            {
                Id = 3, Name = "TopClan2s"
            }
        };
        OwnClan clan = new OwnClan()
        {
            Leader = friend, Id = 0, DateOfCreation = DateTime.Now, Name = "TopClan", SeasonalPoints = 20000, Participants = new HashSet <OtherAccount>()
        };

        clan.Participants.Add(friend);
        clan.Participants.Add(friend2);
        OwnAccount ownAccount = new OwnAccount
        {
            Id               = 1,
            Nickname         = "Leha.Monstr",
            Level            = 5,
            Money            = 5555,
            Losses           = 1,
            Victories        = 55,
            Friends          = new HashSet <OtherAccount>(),
            Clan             = clan,
            AccountStatus    = GameCore.Model.AccountStatus.Priority,
            ClanPoints       = 9999,
            LevelPoints      = 10,
            SeasonalPoints   = 50,
            DateOfMembership = DateTime.Now
        };

        AccountInfo = ownAccount;

        ownAccount.Friends.Add(friend);
        ownAccount.Friends.Add(friend2);
        _menuForm = GameObject.Instantiate(menuFormPrefab);
        SetNewMenuContent(MenuFormContentType.Start);
    }
        public void Delete(OtherAccount ObjDelete)
        {
            var ObjToDelete = _context.OtherAccounts.SingleOrDefault(m => m.CompanyID == ObjDelete.CompanyID);

            if (ObjToDelete != null)
            {
                _context.OtherAccounts.Remove(ObjToDelete);
            }
        }
Beispiel #4
0
        public void CanCreateTwoDifferentArtefacts()
        {
            Interconnect(MyActor, OtherActor);

            var a1 = MyActor.CreateArtefact(Artefact.Name);
            var a2 = MyActor.CreateArtefact(AnotherArtefact.Name);

            Assert.True(OtherAccount.GetPeer(MyId).HasArtefact(a1.Id));
            Assert.True(OtherAccount.GetPeer(MyId).HasArtefact(a2.Id));
        }
Beispiel #5
0
        public void WhenConnectPeer_PeerIsSynced()
        {
            Interconnect(MyActor, OtherActor);
            Interconnect(ThirdActor, OtherActor);
            OtherAccount.SetMoney(ThirdId, (Money)100);
            MyAccount.SetTrust(OtherId, SignedWeight.Max);

            MyActor.Connect(ThirdId);

            Assert.Equal((Money)50, MyAccount.GetMoney(ThirdId));
        }
Beispiel #6
0
 protected TestBase(ICryptographyFactory cryptographyFactory = null)
 {
     _network        = new Network(cryptographyFactory ?? new SimpleCryptographyFactory());
     MyAccount       = _network.CreateRootAccount("MyAccount", 1);
     OtherAccount    = _network.CreateRootAccount("OtherAccount", 2);
     ThirdAccount    = _network.CreateRootAccount("ThirdAccount", 3);
     MyActor         = MyAccount.GetActor(_network, _transactionFactory);
     OtherActor      = OtherAccount.GetActor(_network, _transactionFactory);
     ThirdActor      = ThirdAccount.GetActor(_network, _transactionFactory);
     Artefact        = new Artefact((ArtefactId)"255:1", "SomeArtefact", (AgentId)"255");
     AnotherArtefact = new Artefact((ArtefactId)"255:2", "AnotherArtefact", (AgentId)"255");
 }
Beispiel #7
0
        public void Given_1_PeerWithFullTrustAndConnectivity_WhenSyncSelf_ThenGetMeanPeerMoney(
            float myMoneyBefore, float peerAssessment, float myMoneyAfter)
        {
            Interconnect(MyActor, OtherActor);
            OtherAccount.SetMoney(MyId, (Money)peerAssessment);
            MyAccount.Self.Money = (Money)myMoneyBefore;
            MyAccount.SetTrust(OtherId, (SignedWeight)1);

            MyActor.SyncAll();

            Assert.Equal(myMoneyAfter, MyAccount.Self.Money);
        }
Beispiel #8
0
        public void AfterPeerTransferArtefactToMe_AllMyPeersKnowIHaveIt()
        {
            Interconnect(MyActor, OtherActor, ThirdActor);

            var artefact = OtherActor.CreateArtefact(Artefact.Name);

            MakeTransaction(OtherActor, MyActor, artefact);

            Assert.Equal(MyId, MyAccount.GetArtefact(artefact.Id).OwnerId);
            Assert.Equal(MyId, OtherAccount.GetArtefact(artefact.Id).OwnerId);
            Assert.Equal(MyId, ThirdAccount.GetArtefact(artefact.Id).OwnerId);
        }
Beispiel #9
0
        public static void ReceiveOtherAccount(OtherAccount otherAccount)
        {
            if (otherAccount == null)
            {
                throw new ArgumentNullException();
            }
            OtherAccountRequest request = _otherAccountRequestes[otherAccount.Id];

            _otherAccountRequestes.Remove(otherAccount.Id);
            _otherAccounts.Add(otherAccount.Id, otherAccount);
            foreach (Action <OtherAccount> response in request.Responses)
            {
                response(otherAccount);
            }
        }
Beispiel #10
0
        public void WhenPeerEndorceArtefactWithWrongOwner_PeerLoosesTrust()
        {
            Interconnect(MyActor, OtherActor, ThirdActor);
            var artefact    = ThirdActor.CreateArtefact(Artefact.Name);
            var trustBefore = MyAccount.GetTrust(OtherId);

            OtherAccount.ForgetArtefact(artefact.Id);

            var fakeArtefact = new Artefact(artefact, OtherId);

            OtherActor.EndorceArtefact(fakeArtefact);

            var expectedTrust = trustBefore.Decrease(EndorceCounterfeitArtefactDistrustFactor);

            Assert.Equal(expectedTrust, MyAccount.GetTrust(OtherId));
        }
Beispiel #11
0
        public void WhenTryToUseSameTransactionKeyTwice_NothingHappens()
        {
            var sameKeyFactoryMock = new Mock <ITransactionFactory>();

            sameKeyFactoryMock.SetReturnsDefault("X");
            var myActor    = MyAccount.GetActor(_network, sameKeyFactoryMock.Object);
            var otherActor = OtherAccount.GetActor(_network, sameKeyFactoryMock.Object);

            Interconnect(myActor, otherActor);

            var artefact = otherActor.CreateArtefact(Artefact.Name);

            MakeTransaction(otherActor, myActor, artefact);
            MakeTransaction(myActor, otherActor, MyAccount.GetArtefact(artefact.Id));

            Assert.True(MyAccount.Self.HasArtefact(artefact.Id));
            Assert.False(OtherAccount.Self.HasArtefact(artefact.Id));
        }
Beispiel #12
0
        public void Given_2_PeersWithFullConnectivity_WhenSyncSelf_ThenGetMeanWeightedByTrustPeerMoney(
            float myMoneyBefore,
            float firstPeerTrust,
            float firstPeerAssessment,
            float secondPeerTrust,
            float secondPeerAssessment,
            float myMoneyAfter)
        {
            Interconnect(MyActor, OtherActor, ThirdActor);
            OtherAccount.SetMoney(MyId, (Money)firstPeerAssessment);
            ThirdAccount.SetMoney(MyId, (Money)secondPeerAssessment);
            MyAccount.Self.Money = (Money)myMoneyBefore;
            MyAccount.SetTrust(OtherId, (SignedWeight)firstPeerTrust);
            MyAccount.SetTrust(ThirdId, (SignedWeight)secondPeerTrust);

            MyActor.SyncAll();

            Assert.Equal(myMoneyAfter, MyAccount.Self.Money);
        }
Beispiel #13
0
        public JsonResult SaveDefinitionOtherAccount(OtherAccount ObjToSave)
        {
            MsgUnit Msg = new MsgUnit();

            try
            {
                var userId   = User.Identity.GetUserId();
                var UserInfo = _unitOfWork.User.GetMyInfo(userId);
                ObjToSave.InsDateTime = DateTime.Now;
                ObjToSave.InsUserID   = userId;
                ObjToSave.CompanyID   = UserInfo.fCompanyId;
                if (!ModelState.IsValid)
                {
                    string Err    = " ";
                    var    errors = ModelState.Values.SelectMany(v => v.Errors);
                    foreach (ModelError error in errors)
                    {
                        Err = Err + error.ErrorMessage + " * ";
                    }

                    Msg.Msg  = Resources.Resource.SomthingWentWrong + " : " + Err;
                    Msg.Code = 0;
                    return(Json(Msg, JsonRequestBehavior.AllowGet));
                }
                _unitOfWork.DefinitionOtherAccount.Delete(ObjToSave);
                _unitOfWork.DefinitionOtherAccount.Add(ObjToSave);
                _unitOfWork.Complete();
                Msg.Code = 1;
                Msg.Msg  = Resources.Resource.AddedSuccessfully;
                return(Json(Msg, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                Msg.Msg  = Resources.Resource.SomthingWentWrong + " : " + ex.Message.ToString();
                Msg.Code = 0;
                return(Json(Msg, JsonRequestBehavior.AllowGet));
            }
        }
Beispiel #14
0
 public void WhenRenewKeys_PeersAreUpdated()
 {
     Interconnect(MyActor, OtherActor);
     MyActor.RenewKeys();
     Assert.Equal(MyAccount.PublicKey, OtherAccount.GetPeer(MyId).PublicKey);
 }
Beispiel #15
0
        /// <summary>
        /// Загрузка информации о счетах, карточках, кошельках и т.д. из файла
        /// </summary>
        public static void Init()
        {
            if (!File.Exists(Properties.Resources.AccountsFile))
            {
                StreamWriter fileWriter = File.CreateText(Properties.Resources.AccountsFile);
                fileWriter.WriteLine("<?xml version=\"1.0\"?>\n<accounts>\n</accounts>  ");
                fileWriter.Close();
            }

            XmlAccountsDocument.Load(Properties.Resources.AccountsFile);

            foreach (XmlNode node in XmlAccountsDocument.DocumentElement)
            {
                switch (node.Attributes["type"].Value)
                {
                case "Bank":
                {
                    BankAccount newAccount = new BankAccount();
                    newAccount.AccountName   = node.ChildNodes[0].InnerText;
                    newAccount.AccountNumber = node.ChildNodes[1].InnerText;
                    Enum.TryParse(node.ChildNodes[2].InnerText, out newAccount.Currency);
                    newAccount.AccountAmount = decimal.Parse(node.ChildNodes[3].InnerText);

                    List_BankAccounts.Add(newAccount);


                    TileManager.BankAccountsTab.AddTile(newAccount.AccountName);
                    break;
                }

                case "PlasticCard":
                {
                    PlasticCard newCard = new PlasticCard();
                    newCard.Name             = node.ChildNodes[0].InnerText;
                    newCard.BankAccount      = node.ChildNodes[1].InnerText;
                    newCard.CardHolder       = node.ChildNodes[2].InnerText;
                    newCard.CardNumber       = node.ChildNodes[3].InnerText;
                    newCard.Date             = node.ChildNodes[4].InnerText;
                    newCard.PlasticCardInXml = node;
                    Enum.TryParse(node.ChildNodes[5].InnerText, out newCard.Currency);
                    newCard.AccountAmount = decimal.Parse(node.ChildNodes[6].InnerText);

                    List_PlasticCards.Add(newCard);
                    TileManager.PlasticCardsTab.AddTile(newCard.Name);
                    break;
                }

                case "Crypto":
                {
                    CryptoWallet newCryptoWallet = new CryptoWallet();
                    newCryptoWallet.Name           = node.ChildNodes[0].InnerText;
                    newCryptoWallet.WalletID       = node.ChildNodes[1].InnerText;
                    newCryptoWallet.WalletAddress  = node.ChildNodes[2].InnerText;
                    newCryptoWallet.WalletPassword = node.ChildNodes[3].InnerText;
                    Enum.TryParse(node.ChildNodes[4].InnerText, out newCryptoWallet.CryptoCurrency);

                    List_CryptoWallets.Add(newCryptoWallet);
                    break;
                }

                case "Other":
                {
                    OtherAccount newOtherAccount = new OtherAccount();
                    newOtherAccount.AccountName = node.ChildNodes[0].InnerText;
                    Enum.TryParse(node.ChildNodes[1].InnerText, out newOtherAccount.Currency);
                    newOtherAccount.AccountAmount = decimal.Parse(node.ChildNodes[2].InnerText);

                    List_OtherAccounts.Add(newOtherAccount);
                    break;
                }
                }
            }
        }
 public void AfterIConnectWithAgent_AgentIsNotConnectedToMe()
 {
     MyActor.Connect(OtherId);
     Assert.False(OtherAccount.IsConnectedTo(MyId));
     Assert.False(MyAccount.GetPeer(OtherId).IsConnectedTo(MyId));
 }
Beispiel #17
0
 public void SetAccount(OtherAccount otherAccount) => _otherAccountUI = otherAccount;
 public void Add(OtherAccount ObjSave)
 {
     _context.OtherAccounts.Add(ObjSave);
 }