Пример #1
1
func TestUpdateECTransaction(t *testing.T) {
	state.SetFactoshisPerEC(1)
	add1, err := primitives.HexToHash("0000000000000000000000000000000000000000000000000000000000000001")
	if err != nil {
		t.Error(err)
		return
	}
	add1bs := primitives.StringToByteSlice32("0000000000000000000000000000000000000000000000000000000000000001")

	if state.GetECBalance(add1.Fixed()) != 0 {
		t.Errorf("Invalid address balance - %v", state.GetECBalance(add1.Fixed()))
		return
	}

	var tx interfaces.IECBlockEntry
	tx = new(entryCreditBlock.ServerIndexNumber)

	err = state.UpdateECTransaction(tx)
	if err != nil {
		t.Error(err)
		return
	}
	if state.GetECBalance(add1.Fixed()) != 0 {
		t.Errorf("Invalid address balance - %v", state.GetECBalance(add1.Fixed()))
	}

	tx = new(entryCreditBlock.MinuteNumber)

	err = state.UpdateECTransaction(tx)
	if err != nil {
		t.Error(err)
		return
	}
	if state.GetECBalance(add1.Fixed()) != 0 {
		t.Errorf("Invalid address balance - %v", state.GetECBalance(add1.Fixed()))
		return
	}

	//Proper processing
	cc := new(entryCreditBlock.CommitChain)
	cc.ECPubKey = add1bs
	cc.Credits = 100
	tx = cc

	err = state.UpdateECTransaction(tx)
	if err != nil {
		t.Error(err)
		return
	}
	if state.GetECBalance(add1.Fixed()) != -100 {
		t.Errorf("Invalid address balance - %v", state.GetECBalance(add1.Fixed()))
		return
	}

	ib := new(entryCreditBlock.IncreaseBalance)
	ib.ECPubKey = add1bs
	ib.NumEC = 100
	tx = ib

	err = state.UpdateECTransaction(tx)
	if err != nil {
		t.Error(err)
		return
	}
	if state.GetECBalance(add1.Fixed()) != 0 {
		t.Errorf("Invalid address balance - %v", state.GetECBalance(add1.Fixed()))
		return
	}

	ce := new(entryCreditBlock.CommitEntry)
	ce.ECPubKey = add1bs
	ce.Credits = 100
	tx = ce

	err = state.UpdateECTransaction(tx)
	if err != nil {
		t.Error(err)
		return
	}
	if state.GetECBalance(add1.Fixed()) != -100 {
		t.Errorf("Invalid address balance - %v", state.GetECBalance(add1.Fixed()))
		return
	}

}