diff --git a/erpnext/accounts/doctype/account/test_account.py b/erpnext/accounts/doctype/account/test_account.py
index 83516da..4580d02 100644
--- a/erpnext/accounts/doctype/account/test_account.py
+++ b/erpnext/accounts/doctype/account/test_account.py
@@ -35,7 +35,12 @@
 
 		# related to Account Inventory Integration
 		["_Test Account Stock In Hand", "Current Assets", 0, None, None],
-		["_Test Account Fixed Assets", "Current Assets", 0, None, None],
+		
+		# fixed asset depreciation
+		["_Test Fixed Asset", "Current Assets", 0, "Fixed Asset", None],
+		["_Test Accumulated Depreciations", "Current Assets", 0, None, None],
+		["_Test Depreciations", "Expenses", 0, None, None],
+		["_Test Gain/Loss on Asset Disposal", "Expenses", 0, None, None],
 
 		# Receivable / Payable Account
 		["_Test Receivable", "Current Assets", 0, "Receivable", None],
diff --git a/erpnext/accounts/doctype/asset/asset.py b/erpnext/accounts/doctype/asset/asset.py
index fb1502e..488ba6a 100644
--- a/erpnext/accounts/doctype/asset/asset.py
+++ b/erpnext/accounts/doctype/asset/asset.py
@@ -30,6 +30,9 @@
 		if flt(self.expected_value_after_useful_life) >= flt(self.gross_purchase_amount):
 			frappe.throw(_("Expected Value After Useful Life must be less than Gross Purchase Amount"))
 			
+		if not flt(self.gross_purchase_amount):
+			frappe.throw(_("Gross Purchase Amount is mandatory"), frappe.MandatoryError)
+			
 		if not self.current_value:
 			self.current_value = flt(self.gross_purchase_amount)
 		else:
diff --git a/erpnext/accounts/doctype/asset/test_asset.py b/erpnext/accounts/doctype/asset/test_asset.py
index cada250..031fcc2 100644
--- a/erpnext/accounts/doctype/asset/test_asset.py
+++ b/erpnext/accounts/doctype/asset/test_asset.py
@@ -6,7 +6,71 @@
 import frappe
 import unittest
 
-# test_records = frappe.get_test_records('Asset')
-
 class TestAsset(unittest.TestCase):
-	pass
+	def setUp(self):
+		create_asset()
+		
+	def test_fixed_asset_must_be_non_stock_item(self):
+		item = frappe.get_doc("Item", "Macbook Pro")
+		item.is_stock_item = 1
+		self.assertRaises(frappe.ValidationError, item.save)
+	
+	def test_asset_purchase(self):
+		asset = create_asset()
+		
+		self.assertEqual(asset.current_value, 100000)
+
+
+def create_asset():
+	if not frappe.db.exists("Asset Category", "Computers"):
+		create_asset_category()
+	
+	if not frappe.db.exists("Item", "Macbook Pro"):
+		create_fixed_asset_item()
+	
+	asset = frappe.get_doc({
+		"doctype": "Asset",
+		"asset_name": "Macbook Pro 1",
+		"asset_category": "Computers",
+		"item_code": "Macbook Pro",
+		"purchase_date": "2015-01-01",
+		"next_depreciation_date": "2015-12-31",
+		"gross_purchase_amount": 100000,
+		"expected_value_after_useful_life": 10000
+	})
+	try:
+		asset.save()
+	except frappe.DuplicateEntryError:
+		pass
+	
+	return asset
+	
+def create_asset_category():
+	asset_category = frappe.new_doc("Asset Category")
+	asset_category.asset_category_name = "Computers"
+	asset_category.number_of_depreciations = 5
+	asset_category.number_of_months_in_a_period = 12
+	asset_category.append("accounts", {
+		"company": "_Test Company",
+		"fixed_asset_account": "_Test Fixed Asset - _TC",
+		"accumulated_depreciation_account": "_Test Accumulated Depreciations - _TC",
+		"depreciation_expense_account": "_Test Depreciations - _TC"
+	})
+	asset_category.insert()
+	
+def create_fixed_asset_item():
+	try:
+		frappe.get_doc({
+			"doctype": "Item",
+			"item_code": "Macbook Pro",
+			"item_name": "Macbook Pro",
+			"description": "Macbook Pro Retina Display",
+			"item_group": "All Item Groups",
+			"stock_uom": "Nos",
+			"is_fixed_asset": 1,
+			"is_stock_item": 0
+		}).insert()
+	except frappe.DuplicateEntryError:
+		pass
+	
+	
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/asset_category/asset_category.py b/erpnext/accounts/doctype/asset_category/asset_category.py
index f139499..7acd883 100644
--- a/erpnext/accounts/doctype/asset_category/asset_category.py
+++ b/erpnext/accounts/doctype/asset_category/asset_category.py
@@ -12,4 +12,4 @@
 		for field in ("depreciation_method", "number_of_depreciations", 
 				"number_of_months_in_a_period", "accounts"):
 			if not self.get(field):
-				frappe.throw(_("{0} is mandatory").format(self.meta.get_label(field)))
\ No newline at end of file
+				frappe.throw(_("{0} is mandatory").format(self.meta.get_label(field)), frappe.MandatoryError)
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/asset_category/test_asset_category.py b/erpnext/accounts/doctype/asset_category/test_asset_category.py
index a85fe3d..1fe4aae 100644
--- a/erpnext/accounts/doctype/asset_category/test_asset_category.py
+++ b/erpnext/accounts/doctype/asset_category/test_asset_category.py
@@ -6,7 +6,24 @@
 import frappe
 import unittest
 
-# test_records = frappe.get_test_records('Asset Category')
-
 class TestAssetCategory(unittest.TestCase):
-	pass
+	def test_mandatory_fields(self):
+		asset_category = frappe.new_doc("Asset Category")
+		asset_category.asset_category_name = "Computers"
+		
+		self.assertRaises(frappe.MandatoryError, asset_category.insert)
+		
+		asset_category.number_of_depreciations = 5
+		asset_category.number_of_months_in_a_period = 12
+		asset_category.append("accounts", {
+			"company": "_Test Company",
+			"fixed_asset_account": "_Test Fixed Asset - _TC",
+			"accumulated_depreciation_account": "_Test Accoumulated Depreciations - _TC",
+			"depreciation_expense_account": "_Test Depreciations - _TC"
+		})
+		
+		try:
+			asset_category.insert()
+		except frappe.DuplicateEntryError:
+			pass
+			
\ No newline at end of file
diff --git a/erpnext/setup/doctype/company/company.json b/erpnext/setup/doctype/company/company.json
index 95b17c4..be63aac 100644
--- a/erpnext/setup/doctype/company/company.json
+++ b/erpnext/setup/doctype/company/company.json
@@ -257,7 +257,7 @@
    "print_hide_if_no_value": 0, 
    "read_only": 0, 
    "report_hide": 0, 
-   "reqd": 1, 
+   "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
    "unique": 0
diff --git a/erpnext/setup/utils.py b/erpnext/setup/utils.py
index c3bd452..28a07f3 100644
--- a/erpnext/setup/utils.py
+++ b/erpnext/setup/utils.py
@@ -49,7 +49,9 @@
 			"company_tagline"	:"Testing",
 			"email"				:"test@erpnext.com",
 			"password"			:"test",
-			"chart_of_accounts" : "Standard"
+			"chart_of_accounts" : "Standard",
+			"domain"			: "Manufacturing",
+			
 		})
 
 	frappe.db.sql("delete from `tabLeave Allocation`")
