| 
									
										
										
										
											2015-02-18 13:14:21 +01:00
										 |  |  | package core | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							|  |  |  | 	"math/big" | 
					
						
							|  |  |  | 	"testing" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-18 13:38:47 +01:00
										 |  |  | 	"github.com/ethereum/go-ethereum/common" | 
					
						
							| 
									
										
										
										
											2015-02-18 13:14:21 +01:00
										 |  |  | 	"github.com/ethereum/go-ethereum/ethdb" | 
					
						
							|  |  |  | 	"github.com/ethereum/go-ethereum/event" | 
					
						
							| 
									
										
										
										
											2015-03-06 20:07:35 +01:00
										 |  |  | 	"github.com/ethereum/go-ethereum/pow/ezp" | 
					
						
							| 
									
										
										
										
											2015-02-18 13:14:21 +01:00
										 |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func proc() (*BlockProcessor, *ChainManager) { | 
					
						
							|  |  |  | 	db, _ := ethdb.NewMemDatabase() | 
					
						
							|  |  |  | 	var mux event.TypeMux | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-06 20:07:35 +01:00
										 |  |  | 	chainMan := NewChainManager(db, db, &mux) | 
					
						
							| 
									
										
										
										
											2015-03-12 14:50:35 +01:00
										 |  |  | 	return NewBlockProcessor(db, db, ezp.New(), nil, chainMan, &mux), chainMan | 
					
						
							| 
									
										
										
										
											2015-02-18 13:14:21 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func TestNumber(t *testing.T) { | 
					
						
							|  |  |  | 	bp, chain := proc() | 
					
						
							| 
									
										
										
										
											2015-03-18 13:38:47 +01:00
										 |  |  | 	block1 := chain.NewBlock(common.Address{}) | 
					
						
							| 
									
										
										
										
											2015-02-18 13:14:21 +01:00
										 |  |  | 	block1.Header().Number = big.NewInt(3) | 
					
						
							| 
									
										
										
										
											2015-04-04 16:35:23 +02:00
										 |  |  | 	block1.Header().Time-- | 
					
						
							| 
									
										
										
										
											2015-02-18 13:14:21 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-06 20:07:35 +01:00
										 |  |  | 	err := bp.ValidateHeader(block1.Header(), chain.Genesis().Header()) | 
					
						
							| 
									
										
										
										
											2015-02-18 13:14:21 +01:00
										 |  |  | 	if err != BlockNumberErr { | 
					
						
							| 
									
										
										
										
											2015-04-04 16:35:23 +02:00
										 |  |  | 		t.Errorf("expected block number error %v", err) | 
					
						
							| 
									
										
										
										
											2015-02-18 13:14:21 +01:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-18 13:38:47 +01:00
										 |  |  | 	block1 = chain.NewBlock(common.Address{}) | 
					
						
							| 
									
										
										
										
											2015-03-06 20:07:35 +01:00
										 |  |  | 	err = bp.ValidateHeader(block1.Header(), chain.Genesis().Header()) | 
					
						
							| 
									
										
										
										
											2015-02-18 13:14:21 +01:00
										 |  |  | 	if err == BlockNumberErr { | 
					
						
							|  |  |  | 		t.Errorf("didn't expect block number error") | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } |